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.
Compute intra-BB liveness information

When emitting frame information, we pass all currently-live
variable names.  We clear dead register names at the end of
every basic block, but for long basic blocks we can end up
accumulating many temporary names (one per sub expression).
This ends up hugely increasing the LLVM compilation times since
we will pass hundreds of arguments to many different callsites.

Now, we remove dead variable names as soon as they die.  (Note:
user-visible names are always live since they can always be seen
by the locals() function.)  This means that we pass many fewer values
as frame arguments.

A better solution will be to have a real bytecode language which
encodes such liveness information, instead of mostly-having it and
then discarding it.
Fix some liveness-analysis bugs
Enable frame introspection!

The code was already in but it was turned off due to the
compile time regressions.  The addition af kill flags seems
to have fixed it.

We now have the locals() method working and can start to implement
other similar features.
Make it more clear that pyston does not work on OSX (yet)
member descriptor ics
two passes
replaced unordered_map
added extension module testing capabilities and the rest of the descriptor field types
clean-up to the rewriter two-pass stuff
use (void)
Implement repr() for file objects
Add iterator support for file objects
Fix IOError format string when opening non-existent file
Merge pull request #203 from jvkersch/file-iter-168

Small improvements for file objects.