Propogate constant values for enum members by default.
Don't pass the compiler's resolver through.
Make the resolver on the compiler private.
Make sure to bind before finding references on a declaration
Remove code from "pullTypeCheck".

End goal is to get rid of pullTypeCheck entirely.  The major issue i was dealing
with here was that pullTypeCheck was necessary from all clients (tests, 4/, batch)
to ensure that our top level symbols were in place.  If this was not done, basic
language features (like extends lib.d.ts) interfaces just wouldn't work.  To
address this, we now pull on those symbols on demand if you need them, or try to
extend them.  We also define a natural ordering for symbols of the same name.
Specifically, we will consider a symbol to be a merging of its constituent
declarations. Those dclarations will be ordered in a manner that both reflects
their owning file's order in the compiler input set, as well as any lexical ordering
in a file itself (if we have multiple decls for a symbol in teh same file.).

In other words, if you have files A, B and C, and each defines a declaration for
some symbol X, then we will keep the decls for X in the order of: decls-from-A,
decls-from-B, decls-from-C.  And if any of those files themselves contained
multiple decls for X, then they'll be kept in source position order.
Remove the pullTypeCheck method from the compiler.

This method was the antithesis of 'pull'.  It forced the compiler to do work instead of having
that work naturally fall out through the normal compiler query methods (like getSemanticDiagnostics).