First iteration of the ZCO parser

The syntax is inspired by GOB and C#. Some features are still
not implemented, such as interfaces and attached properties.
Since attached properties require the use of a lookup table,
it will be implemented after a map class is written.
Started working on user context management

Added support for comments in ZCO file
Added support for built-in function definitions

The class static members will be stored within the user contexts
instead of as global variables. This will allow easy switching
between user contexts.
Added support for inheritance and interfaces
Fix indentation
Add support for virtual functions
Fixed a parsing logic bug

Fixed a parsing logic that was exploited by using multiple asterisks
that were spaced out between the type name and the symbol name
init() is now a virtual function

It makes sense for the constructor to be a virtual method instead of
a special function that works differently from all other methods.
Fixed a compile error with virtual functions
Add special logic for the constructor

init() can't really be a virtual function because the vtable is created
in init().
Move the vtable into the Class struct

Move virtual table into the class struct instead of storing it
in the public struct.
typedef all structs for convenience
Some syntax changes with virtual function decls

virtual function declaraction respects the specified access mode.
override function declaration does not require the specification
of an access mode.
Add line numbers to the generated files
Replace "from" to ":" in lexer file

The language specification was changed so that the class X from Y
notation was changed to class X : Y (like C++). The lexer file
was not updated properly, which results in wrong output in the
generated c/h files.
Added 'self' to prop get/set + bug fixes

Add 'self' as the first argument of the generated property getter and
setter functions.

Fixed the code that generates the upcast macro so that vtable_offset
table is actually used. Also moved the vtable offset table to the beginning
of the class object, so one less ADD operation is needed for every upcast
operation.

Fixed an issue so that comments can now be added between function arguments.
Added initial implementation of basic objects

Added ZObject
Added ZVector and ZVectorIter
Added a test driver for ZVector

Additional changes:
Item size must now be specified in the z_vector_new function.

The 'end' property getter of ZVector now returns an iterator
to the element one past the last one, instead of the last one.

Moved type system helper methods into zco-type.c

Minor fix with #line generation in zco.y
Completed the ZVector test driver

Push distcc output to a log file (so it doesn't polute stderr).

Finished ZVector test driver.

Minor bug fixes (related to uninitialized data) that were discovered
while writing the test driver.
Documentation + Bug fix

Add documentation to ZVector and also fix a minor bug encountered
while writing the documentation.
Added support for const keyword and variable arguments