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
Fixed enumeration bug, typed array replication

An array replicated with the "*" operator has now the correct type.
Also, results of binary operators aren't enumerated when written to the pipeline anymore.
Especially in combination with replicated arrays (imagine to create a 1MB array), this lead
to crucial performance issues.
Fixed problem with additive argument expression
Merge pull request #240 from sburnicki/add_mult

Support for additive and multiplicative operators