Merge pull request #199 from sburnicki/rename_reftests

Renamed PS reference test project to reflect brand correctly
Refactoring and fixing of Get-Member cmdlet
Implementation of Select-Object cmdlet

The implementation supports everything but the ExpandProperty parameter.
Also, there can't be hashtables in the property parameter, yet, as hashtables
are currently not handled correctly by Pash (they get enumerated, but shouldn't).
Better support for Hashtables/Enumeratables

LanguagePrimitives provide a unique way to access an enumerable/enumerator.
Therefore all the (nearly identical) implementations in different classes could be
removed.

One important change is that only IList are seen as enumerables. For most objects as
arrays and lists, Pashs behavior won't change. But strings, Dictionaries, Hashatbles,
etc. have to be enumerated explicitly (via .GetEnumerator()). This matches Powershell's
behavior and allows Hashtables to be used in cmdlets dircetly, without being enumerated
to DictionaryEntries.

Last but not least, the FormatManager had to be adjusted to enumerate *all* objects, not
only ILists, so also Dictionaries are formatted correctly.
Unrolly one level of an input object while formatting also matches PS behavior.
New tests validating the new behavior and cmdlet
Added tests. Proper hashtables: values are actual objects, not wrapped
Changed the enumeration behavior; Simplified tests

Obviously it was a bad idea to only enumerate ILists. That's why I changed it
back s.t. everything is enumerated but strings and IDictionaries which seems
to fit PS' behavior better.
The previously added tests (which didn't work before) make sure enumerables
are enumerated while dictionaries and Hashtables aren't.

Also the Formatting tests were simplified. The tests depended on a concrete
order of the object's properties. However, the real order is abritrary, so
the tests are more robust
Fix for null comparison
Merge pull request #224 from sburnicki/psobject_cmdlets

Get-Member fix; Introduction of Select-Object cmdlet; Refactoring
Fixed and implemented CSV cmdlets
Added tests for the CSV cmdlets
fixup
fixup
Improved test, first fixes/changes.

Added the "newline" case to the Import-Csv test.

Changed Import-Csv s.t. it reads value from the stream as it can contain
escaped newlines, so reading values from a single line doesn't work.

Other minor fixes.
Support for escaped characters in strings.

Escaped characters are now properly replaced by the actual ones.
Csv cmdlet fixes; Resolve escape character fixes

Resolving escaped characters didn't always work with the regexs that were used. This issue was
fixed and a proper test was added.

Fixed last issues with CSV commands
Fix: Closing CSV file on early abort in import, added an escape char