Add my pending-review patch for invoking patchpoints

Will get rid of it once it's merged upstream
Forgot to include this part
docs: minor fix on installing instructions
Merge branch 'mjisyang-develop'

Closes PR #188
For now, disallow allocation of callee-save registers in inline caches

If we allocate a callee-save register that the parent function had
not also allocated, change its value, and then call a function
that then unwinds, the unwinder would pass the new (incorrect)
value of the callee save register to the next frame.

We either need to
- make sure callee-save registers are restored before any potentially-throwing
  callsite, or
- make the unwinder able to restore these registers for us, potentially
  by writing our own exception unwinder.

For now, the easiest thing to do is to disallow allocation of those registers.
(I'm not even sure how much we allocate them at all at the moment.)
Merge pull request #183 from undingen/isAlloc

Fix isAllocCall check
Enable patching of invokes

With the LLVM patch, it seems like this works.
Fix embedding of constant ints

Allow 64-bit constants.  not sure how we didn't run into this before
Separate the CompilerType objects from the class definitions

Most code wants to have access to the basic types (INT, STR, etc)
but doesn't need to know anything about what methods they support.

Move the commonly-accessed parts of compvars.h into the always-included
core/types.h, and remove almost all of the includes of compvars.h
Add some extra error checking during irgen
Add some more patchpoint-related llvm patches
Add the ability to represent bools as non-i1

Turned off for now; will need this for a later patch.
Change how we create and represent patchpoints
Change some of the low-level initialization of patchpoints

Will make it easier to initialize non-ic patchpoints that
are coming up.
Support frame introspection

The approach in this changeset is to attach frame args
to every call site via stackmap args.  We make sure that
every callsite is a patchpoint, and serialize the symbol
table into its arguments.

In this patch, that is just used for supporting the locals()
method.

It's currently disabled since it has a hugely negative impact
on performance (LLVM takes much longer to JIT with all the extra
function arguments).
update this unused code
Add some package-importing and relative-importing tests
Note
Whoops -- fix bug
Make sure that we never reuse AST nodes

We currently specify execution state by the AST node that
represents it, which means that we have to not reuse AST nodes.
Previous to this patch, we were doing that, so this patch
fixes those up.

This patch isn't the cleanest since I think this whole approach
will go away when we transition to a proper bytecode system.