Implementation of decrement, refactoring, fix of array enumeration to pipeline

Major new things introduced by this commit series:
- prefix/postfix decrement operators as defined in the specification (not only for variables, see below)
- better array evaluation: `$a = 1,2; $a; 1` results now in `1,2,1` on the pipeline, not as `object[],1`
- refactored classes care about expressions that can have a value set.These are
  - IndexExpressions, as `$a[1]`
  - MemberExpressions, as `$a.foo`
  - VariableExpressions, as `$a`

These classes unclutter the `ExecutionVisitor`. Also, the `SettableExpression.Create` factory method can be used when any of these expressions work in the current context, as in the increment/decrement operator. Last but not least they assure that their included expressions (as in `$a[$i++]` for indexing) are only evaluated once, not twice as before.
Tests have been added for all that stuff.