Support binding a string array to a cmdlet parameter.

Example statement:
  join-path -Path c:, d:, e: -ChildPath temp
Implement combining paths for join-path.

Simple implementation to support directory and file paths. Join-Path should be calling
NavigationCmdletProvider.MakePath(string parent, string child) but it is not
doing this currently:

http://msdn.microsoft.com/en-us/library/windows/desktop/ee126197.aspx
TEST: Fix join-path tests on Unix.
Merge pull request #154 from mrward/join-path

Implemented combining paths for join-path
Allow scripts to be dot sourced.

The following statements are now supported:

. 'c:\scripts\myscript.ps1'
. $fileName
. (Join-Path $directory $fileName)
Merge pull request #155 from mrward/dot-source

Allow scripts to be dot sourced.
Implement foreach statement.

foreach ($i in (0..10)) {
    Write-Host $i
}

foreach ($c in "abc") {
    Write-Host $c
}
Merge pull request #156 from mrward/foreach

Implement foreach statement.
Implement += assignment.

Implementation uses dynamic to add two objects together.

It looks like PowerShell is not using dynamic. Trying to add two System.Objects together
from the PowerShell command line results in the error:

Method invocation failed because [System.Object] doesn't contain a method named 'op_Addition'.

So it looks like PowerShell is using reflection for some types and probably handles types
such as integers, which have no op_Addition method, individually by casting them to the
correct type.
Merge pull request #158 from mrward/assignment-by-addition-operator

Implement += assignment.
Implement -= assignment.
REFACTOR: Use context when getting/setting variables.
Implement *= assignment.
Implement /= assignment.
Implement %= assignment.
Write result of assignment to pipeline.

The assignment right hand side was being written instead
of the result of the assignment.
Merge pull request #159 from mrward/assignment-operators

Assignment operators
TEST: Fix invalid foreach test.

Running the following in PowerShell returns 'abc':

    foreach ($char in 'abc') { $char }

Added separate test that ensures the PSObject base objects are
used when iterating the foreach items.
Fix output when iterating through foreach.

Previously the following would output a value for each iteration.

$j = 0;
foreach ($i in 0..10) {
   $j++
}
Fix output when iterating through for loop.

Previously the following would output a value on each iteration.

$j = 0;
for ($i = 0; $i -ile 10; $i++) {
   $j++
}