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 $(...)
Implement bitwise operators -band, -bor and -bxor

0x0F0F -band 0xFE
0x0F0F -bor 0xFE
0x0F0F -bxor 0xFE
Fix index out of range exception when invoking method.

Trying to invoke GetMethods(...) on a type when the binding flags were
passed would fail with an index out of range exception. The check that
looked for params parameters was trying to use the last parameter for
a method when the method had no parameters.
Support bitwise argument expressions.

Allows a bitwise expression to be passed as an argument to a
method.

  $type.GetMethods([System.Reflection.BindingFlags]::Instance -bor `
      [System.Reflection.BindingFlags]::Public) | % { $_.Name }
Fix binary expressions being evaluated when they are not implemented.
Merge pull request #229 from mrward/bitwise-operations

Bitwise operators -band, -bor and -bxor
Implement Add-Type -AssemblyName

Allows the use of types from assemblies that are not available by
default.

  Add-Type -AssemblyName 'Microsoft.Build, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'
  [Microsoft.Build.Evaluation.ProjectCollection]
Implement Add-Type -TypeDefinition

Support generating types in memory from C# code.
Implement Add-Type -MemberDefinition

  $method = 'public string WriteLine() { return "Test"; }'
  Add-Type -MemberDefinition $method -Name "MyType"
Implement Add-Type -ReferencedAssemblies

Support generating types using external assemblies referenced by
their full assembly name or path.
TEST: ReferenceHost stores error objects when exception thrown.

Currently the nested pipelines have the error objects but the main
pipeline does not have access to them. So the pipeline.Error in the
ReferenceHost is always empty with Pash. Windows PowerShell does
populate the pipeline.Error with objects sent to WriteError by a
cmdlet.
Report compilation errors when using Add-Type

All compilation errors are written to error stream and are available
via the $error variable.
The Add-Type cmdlet is terminated if there are compilation errors.

There are some problems here. Pash currently only shows the error in
the console from the exception that terminates the cmdlet.
PowerShell shows the exception error and all the compilation errors.
The error from the exception results in a duplicate error record. If
the cmdlet is changed so it does not terminate with an exception then
the compiler errors are displayed in the console.
Implement Add-Type -Path

Can now use types from an assembly or from a C# source file using
Add-Type -Path