Add ScriptInterpreter for script evaluation

This PR adds the ScriptInterpreter class, which allows to execute bitcoin Scripts.
It adds tests using data from bitcoind, to be sure it's working correctly.

Big thanks to @ryanxcharles, many parts of this code were ported from his version at https://github.com/ryanxcharles/fullnode
those are names taken from bitcoind's implementation of the same code. I'll stick with the same names, it allows for easier auditing that the code is OK looking at bitcoind's code, and easier port of changes done to that codebase.