Expression Improve

Some code review and refactor - there is a lot of room for improvement.

Fixed GetActionType and GetFuncType
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.