consensus lib work: add status codes to the script interpreter and remove logging

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!
Yes, it's pretty arbitrary. But it's also strange to have a function that is called from nowhere, not even from the unit tests. But I'm fine with doing that in a later pull, and regarding this as preparation.