Continuing to implement assembler

- Added declare directive and more code to handle different aspects of
  assembling
Fixed shift/reduce and reduce/reduce conflicts
Added output encoding support

- Immediates are now carved up and saved into reg2 and reg3 automatically in
  little endian byte order. This makes writing output significantly simpler
  as there is only one way to output code entries.