restore scripting functionality

`op_add_sibling` should work now, and the `AddSiblingInput()` function in scripts.go has been updated accordingly. It now takes multiple arguments and returns a full ScriptInput instead of a byte slice. Deadlines have not yet been implemented, but it should be fairly straightforward to do so.

ScriptInput has a new method, `Sign()`, which prepends the Input with the signature of the entire ScriptInput. But maybe this should be a standalone `SignInput()` function instead of a method, since siacrypto.SecretKey already has a `Sign()` method. Also, this signature scheme makes verification kind of ugly, since you need to remove the prepended signature from the Input field to obtain the original message.

A few other minor changes were made to the bytecode, such as reordering/organizing opcodes and correcting some undesirable behavior.