Error/Exception fixes

These commits take care that errors are correctly handled inside Pash.

- errors are also passed to parent runtimes
- ThrowTerminatingErrror or throwing Exceptions will result in CmdletInvocationExceptions that contain the correct ErrorRecord
- The $error variable is now (correctly) an ArrayList that may contain Exceptions or ErrorRecords

This allows PS compatible error checking in tests.
It fixes #247.