Get-Member fix; Introduction of Select-Object cmdlet; Refactoring

The major intention of these commits are the fixing of the (currently broken) Get-Member cmdlet and the introduction of the Select-Object cmldet with proper tests.

I introduced some PSObject extensions as evaluate properties, as this functionality is needed often when a Cmdlet takes a -Property parameter. This parameter can include a hashtable with expression, or only an expression which is evaluated (Format-* and Select-Object cmdlets support this, for example).

I fixed Hashtables, s.t. the values aren't always PSObjects but the objects itself (this is verified with a ReferenceTest).

The enumeration stuff was refactored: Support for GetEnumerator is now uniquely in LanguagePrimitives, all the duplicate code was removed. Strings and IDictionaries are not seen as enumerable any more, which seems to fit PS behavior.