Merge branch 'feature-gearc-compiling' into develop

* feature-gearc-compiling:
  Implement compilation of statements and expressions
  Export compiler state mutators
  Add Compiler monad and state manipulation functions
Merge branch 'gear' into develop

* gear:
  Add pop instruction
Merge branch 'gearc' into develop

* gearc:
  Fix order in which atoms and strings are inserted
Merge branch 'gearc' into develop

* gearc:
  Implement object file writing
Merge branch 'develop' into gear

* develop:
  Implement object file writing
  Fix order in which atoms and strings are inserted
  Implement compilation of statements and expressions
  Export compiler state mutators
  Add Compiler monad and state manipulation functions
  Implement parser for statements and expressions
  Add Statement and Expression AST node types
  Add lexer for string literals
  Add identifier, '(', ')', ',' and ';' lexers
  Add Cabal package for compiler
Merge branch 'feature-gearc-object-file-writing' into feature-gearc-compiling

* feature-gearc-object-file-writing:
  Implement object file writing
Merge branch 'feature-gearc-compiling' into develop

* feature-gearc-compiling:
Put all Go source files in the same package
Put Bytecode into vm.go
Make stackFrame public
Implement calling bytecode functions

This implements calling of functions that are implemented in Gear
bytecode rather than in Go.
Move local table copying to definition site
Implement lookup of locals
Merge branch 'gear' into develop

* gear:
  Implement lookup of locals
  Move local table copying to definition site
  Implement calling bytecode functions
  Make stackFrame public
  Put Bytecode into vm.go
  Put all Go source files in the same package
Merge branch 'develop' into gearc

* develop:
  Implement lookup of locals
  Move local table copying to definition site
  Implement calling bytecode functions
  Make stackFrame public
  Put Bytecode into vm.go
  Put all Go source files in the same package