Boo LINQ implementation

An implementation of compile-time support LINQ, as found in C#.  Consists of two significant changes to the compiler:

 - LINQ syntax: The ability to parse C#-style LINQ query expressions (`from x in myCollection...`) and transform the resulting AST into a method chain
 - Lambda to Expression Tree conversion: When an inline lambda (BlockExpression) is passed to a method that expects a parameter of type `System.Linq.Expressions.Expression<Func<[params]> >` with a compatible signature, the compiler will automatically convert the BlockExpression into the appropriate Expression Tree code.
I'm actually a bit surprised that this wasn't already there.  The reasoning is that it's quite possible for BindBaseTypes to run across a reference to a class whose definition hasn't been processed yet.  This should not be an error, but it raises an internal compile error.

Fixups are a standard idiom for handling problems of this type when parsing input: make a list of everything that fails to bind, and try again once the first pass is over.  Repeat until either everything binds or nothing does.