First working version of G-Machine

No primitive operations implemented yet. Just variables, numbers, and
application.

`putStrLn $ run program` will run and produce a lot of output.

Can use `start program` and `next it` in ghci to single-step through
state transitions.