Cleaned up version of #5188
Attempt to codify the possible error statuses associated with script validation. The second commit (move-only) moves the other flags into the newly created script/types.h as part of the upcoming external interface.
Logging has also been removed in order to drop the dependency on util.h. It can be re-added to bitcoind as-needed. This makes script verification finally free of application state and boost!