Supporting for loops with less than three arguments.
Merge pull request #248 from ygra/for-loop

Supporting for loops with less than three arguments.
Correct conversion to number, unified arithmetic operators

- Conversion of operands to numeric values as in the PS specification.
- Common method for arithmetic operations
- ReferenceTests for Additions
Tests for subtraction and multiplication, implementations
Support for multiplication, division and remainder
Support for expressions like 1/3=0.333
Index expressions, pipeline element enumeration reworked

The pipeline enumerated all elements when writing to the output stream.
However, that broke support for assigning enumerable objects to a variable,
as it would be enumerated and therefore converted to an object[].
Now, enumeration always takes place when a ScriptBlock ends which seems
to pretty much match PS behavior.
Added add/multiply for arrays and hashtables
Fixed broken tests
Hashtable tests and first fixes
Fixed tests, support for empty arrays
Support for slicing (multiple indexes) and unary arrays
Changed ReferenceTests to match PS behavior
Added tests concerning behavior of PSObject and null
Test confirming null is passed in ProcessReord phase
Fixed things s.t. ReferenceTests work

Major part of this is the fact that PSobject isn't allowed to wrap null in PS, but instead the PSObject object is directly null.
This is just the otheer way round it was supposed until now.
Fixed various places s.t. it works as expected.
Moved tests according to the new hierarchy
Added Exlude paths to not include temporary files from previous build
Implemented type conversion