Additions from the weekend

I did not change any of the existing code, so this shouldn't put any
existing functionality in jeopardy.
Fixed Conflict
Update TODO file with current next steps.
Lifting functions for nums, strings, bools

We can merge these functions eventually, but it was faster to write
them separately then to deal with mutable fields in objects.
Lifting Data expressions

I now have code to lift data expressions. There are no tests for this
function just yet, but I will try and add some in the next few
commits. I will also be restructuring this code a bit, and creating
another file (so that the halfway representation and associated
functions have their own file).
Added data type conversion code

I also basically cloned Joe's data type types in my halfway
representation --- I'm starting to think that was entirely
unnecessary. I'm probably going to comment it out; I'm committing it
so that it's there is we decide we want it, though.
This commit is for backup's sake only.

I have not tested anything yet; it may or may not work.
Mostly for backup purposes right now
Flush out LLVM library.

The LLVM library now represents LLVM programs slightly better. There is
still significant work to be done though.
Implement initial version of lower-level language.

`to-lower.arr' contains the initial definition of a lower-level language
that is a suitable stepping stone from a higher-level representation of
the source Pyret program where we perform most source transformations.
Clean up methods for LLVM representation.

Placing the tostring() methods inside the LLVM representation was
beginning to make it hard to read over the ADT, so I moved it all into
one function under sharing. (This also helped catch several issues with
identifier names.)
About to pull
Merge branch 'master' of github.com:kechpaja/pyret-compiler
Improve LLVM tostring() and calling conventions.

More opcodes are now handled by the tostring() method. Additionally,
calling conventions are now their own enumerated type instead of being
specified as a string, to be more type safe.
Improve handling of global constants and variables.
Split up to-lower.arr into two separate files.

To make the code more modular, I have placed the AST for the lower
intermediate representation into its own file. The code for converting
it to the LLVM representation will go into its own file, and the code
for going to the lower representation will eventually also have its own
file.
Some errors fixed
Merge branch 'master' of github.com:kechpaja/pyret-compiler
Pushing to have access from CIT
Done working in CIT