Added unit testing.
Empty lists are displayed as nil, not ().
Made fixes to the lexical analyser.

* For non-null-terminated buffers, the data wasn't copied.
* Keywords are only valid if there is whitespace before the colon, or if the colon is the first character in the code.
Removed assert check from execution.

It was causing too many problems as it wasn't accurate enough.
-1 wasn't being accepted in TiRun() for the buffer size.
Added unit tests to PC project.

* Also fixed PC warnings and errors.
Fixed memory manager bug and added logging and checking of memory.
Fixed garbage collection for the symbol table.
Updated todo list.
Fixed compilation warning on Mac.
Fixes for build problems on the Mac.