Simple binary buffer added

Global static variable 'buffer' is now used to store output which
will be written to the file. This is needed so that functions can
be separated into file scope.

* ELIST op added
* String writing function added
* `string_new` now allocated basic storage (now that I think of it,
  it should be more).

String will be renamed to Buffer in next commit. I don't wont to
confuse git
Renamed String -> Buffer

Well now it has became a buffer. Deal with it.
Better state keeping + functional buffers

A simple list data structure has been added to keep track of buffers
just like the Go prototype did.

Also most of the state of the parser is now kept in 'State' data
structure

Other changes:
* More values defined using enums
* Name look-up map
* POSIX exit statuses

To be added (a.k.a. Note to self)
* Change the default a.out to <file>.muvm
* Consider splitting up parse.c