Expose `step` and `parse_instr` in protocol
This patch exposes two functions that were up to now hidden in the protocol:
The goal is to facilitate the life of tool writers (eg benchmarks, try-michelson, etc).
The more invasive changes are those in Script_interpreter, since we have to hoist a locally defined recursive function out to make it visible. It would be probably wise to apply this patch after all interpreter-modifying ones.