As a contract to ensure that we don't rebind decls changes were made to bindDeclToPullSymbol to track bindings. to prevent other code from calling internal binding methods i have made the private and fixed the code calling directly.
Merge branch 'develop' of https://git01.codeplex.com/typescript into develop
revert change for binding function assignment properties
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).
Ensure that arrays cannot be null in getImplementorsAtPosition
Update to minimal.lib.d.ts
Report error for _i variable/parameter declarations in function with rest parameters
we were unable to use bind decl to symbol because simple property assignments where binding symbols function property assignments. With this change we can now make the binder internals all private and only expose one method: bindDeclToPullSymbol(decl)
Merge branch 'develop' of https://git01.codeplex.com/typescript into develop
Create a 'streaming' compile API for the compiler.

     This API allows the consumer to simply get a stream of results from the compiler in the form
     of an iterator of diagnostics and emit results.  The stream does the normal set of steps that we
     get today from the batch compiler.  i.e. it does syntactic checks, then semantic checks, then emits.

     With this, we can have other consumers (like our test harnesses) simulate the behavior of the
     compiler, without having to hand code in all that logic themselves.
Provide information on an output file as to what type of content it has.

Some test harnesses (like the project harness) do specialized things depending on
what type of file they're looking at.
Provide a mechanism to allow clients to perform the entire compiler pipeline, even if errors have occured.
Move the projects tests over to using the new streaming compile entrypoint.
Allow compile results to include diagnostics and output files.

It makes consumption much simpler.
Move document ownership into the semantic info chain so we can lazily parse and produce SyntaxTrees and ASTs.