Significant modifications to scope handling. Each scope inside a function now has cleanup blocks that clean ONLY values from that scope. Jumps from inner scopes are controlled through a 'target_selector' value. This will make the IR a bit cleaner, and facilitate addition of error handling and debug information.
Very initial version of debug metadata. Won't be very useful until I can get the JIT to emit debugging symbols (and this seems to be non-trivial).
Added support for runtime errors using the 'error' keyword. Closes #23.
Externally declared functions are not allowed to throw an exception.