Replace unit tests with baseline tests.
Removing unused test code.
Remove unnecessary compiler API that existed for unit tests that have since been converted to baselines.
Clean up the compilation API to not take in a test callback.

Instead, just pass the source map data out as part of compilation result.
THe caller can then decide what they want to do with it.
Use an empty array instead of a null array.
Delete dead code.
Fix stack overflow during typecheck.

I errently removed a check we had in typecheck that prevented recursion across files.
This check wasn't necessary from a correctness perspective, but it was necessary to
prevent the amount of recursion involved in typechecking from growing too high and
blowing the runtime stack.  I've added the check back in and commented why it is
necessary.
Remove unnecessary creation of new context objects.
For a generic method in a generic type, ensure that any constraints that reference the enclosing type's type parameters are properly instantiated
Better checking for nested recursive type references, and accounting for types widened to any while testing if a given type is an infinitely expanding one
Remove the need to pass the 'enclosing decl' all over the type resolver.

Instead, compute the enclosing decl on demand when needed.
Fixing build issue.
Update LKG.
Revert "Update LKG."

This reverts commit 5ffd53065dc21339aad47459a420040b7f3ab4d4.
Revert "Fixing build issue."

This reverts commit e437b06f0c3086ba53f629d2f845fc234075619f.
Revert "Remove the need to pass the 'enclosing decl' all over the type resolver."

This reverts commit e861380c6be3fc1b9fc5cbc03b39d078b05d5e90.
Don't convert AST id's into strings.

We can just use the actual ID to index into an array instead of using strings and a dictionary.
Don't convert Decl id's into strings.

We can just use the actual ID to index into an array instead of using strings and a dictionary.
Introducing a bitvector and bitmatrix implementation.

These classes enable more efficient storage implementations when mapping between
numbers and booleans.  For dense sections of the mapped space, we only need 1/16th
the space that a normal array of booleans would take.

The implementations also support pooling.  For incremental scenarios this allows
reuse of the pool, preventing less garbage from being created.
Add the ability to set a bit to false in the bitvector and bitmatrix.