Fix for OrderedEnumerable null comparer

OrderedEnumerable will use the Comparer<TKey>.Default when null is
provided.
Fix for Expressions

The fields Globals, Locals and Parent of ExecutionScope are required to
be public because they are accessed from Reflection. This also matches
the .NET specification.
Expressions review + clean up & TypeHelper improved
Updated Copyright