Renamed PS reference test project to reflect brand correctly
Refactoring: Moved SetUp and TearDown methods to RefererenceTestBase
Moved ReferenceTestInfo to the correct directory.
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
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
Merge pull request #226 from sburnicki/csv_support

CSV cmdlets support; Escape character support
Support subexpression operator $(...)

    $(2,4,6)
    $(1 + 2)
    $($i = 10; ++$j)
Fix subexpressions not returning $null for assignments.

A subexpression containing an assignment was returning the value of
the assignment as the result of the subexpression when it should have
been returning $null.

These statements now work the same as PowerShell:

    $($i = 1) -eq $null
    $foo = $($i = 1)        # $foo is $null
Merge pull request #227 from mrward/subexpressions

Implement subexpression operator $(...)