Separate H AST from conversion code; fix minor issues.

To make it easier to discover the layout of the compiler and to allow
for better modularization, the H AST is now in its own file, so that it
can be imported separately by the several other modules that need it.
Update compile module to work with new infrastructure.
I wrote some tests

There aren't as many tests here as I had hoped; I will be adding more
tomorrow. However, it's worth mentioning that the compiler doesn't
actually produce any output at the moment, not for me at least.
Fixed two bugs
Removed commented-out code
More tests
Handle s_fun in source; minor bug fixes.
Make use of {Parameter,Function}Attribute.
Make everything use same Bind type.

Moving everything to new Bind types that are mostly the same is silly.
Everything now uses the same bind type, which has two variants: one with
location and one without. There is room for improvement and room for
preserving types better throughout different steps but this will do for
now.
Add support for cases in source code.

Cases should now be mostly handled, but they may need some further work
in the lower and LLVM areas.
Fixed bugs in anf-to-h

Nothing much to add; mostly just some type errors and things getting the
wrong number of arguments. We still are getting empty files from
compile.arr, though.
Initial LLVM code for handling Judy arrays.

runtime/table.ll contains the initial code for working with Judy arrays
(libjudy). To build with it, make sure you link against libJudy.so. You
will want to install:

    - libjudydebian1 on Debian/Ubuntu (also libjudy-dev if you want to
      play around with the library in C)
    - deb-libs/judy on Gentoo/Sabayon
Update TODO.
Fixed minor bugs in anf-to-h, added s-update case to anf.arr
Merge branch 'master' of github.com:kechpaja/pyret-compiler
Add table-copy() and clean up table code.

The table-copy() function copies a table into a new table. This commit
additionally tightens up the code in table-insert() and table-lookup(),
and moves some things out of num.ll, so that it only contains things
related to numbers.
Finish up most Lower->LLVM transformations.

Most transformations to LLVM have been implemented now (but they are
subject to change). As a result, the LLVM representation has
received several improvements and bug fixes.

The identifier names in anf-to-h.arr have had their prefixes stripped.
The binding situation will need to be improved in the compiler, so that
local and global identifiers are chosen correctly.

compile.arr will now produce a *.ll file for some tests (for example
tests/lambdas/simple.arr), but they will not yet compile.
Update building instructions to mention libJudy.
about to pull
Merge branch 'master' of github.com:kechpaja/pyret-compiler