Reworked Pipeline processing and error handling

Error streams of pipelines now work correctly.
MergeUnclaimedPreviousResult flag was implemented and used with the out-default command.
Doing so, nearly all output is now printed by out-default, as intended.
Only if the initial pipeline fails, the FullHost has to print remaining errors.

Also, the $error variable is now used set to provide occured errors in Pash.

For error streams to work correctly, I reworked output/input/error stream redirection
in general. The new way doesn't require as much copying as the old way.

The PipelineProcessor has been generally changed as it didn't implement the command
lifecycle as specified by Microsoft.
For details about the new lifecycle, take a look at http://msdn.microsoft.com/en-us/library/ms714429(v=vs.85).aspx.

Existing tests have been modified according to the changes, new tests will follow in a separate commit.
There is still some refactoring necessary which will also follow in a separate commit/merge.
Removed direct I/O. Added not yet working tests.

Removed more direct I/O from FullHost, s.t. printing is handled by Out-Default.
Improved Ou-Default's way of writing errors.

Added working tests that check the error variable.
Added tests that check the correct processing of the pipeline command phases and correct error handling.
These tests do not work, yet.

Modified TestHost to have access to the last used runspace (e.g. to get variables).
Added not yet working test for clearing .
VisitPipelineExpression uses Pipeline. Fixes.

The lifecycle of commands in a pipeline was changed, otherwise it didn't make sense.
This means, a command has to run "EndProcessing" before the next command processes records.
Inserted comments on how the pieline is supposed to work: ProcessRecord() as soon as the previous command
writes to the pipeline.
Also, the ProcessRecord phase is only entered if there are input objects or the command is first in the pipeline.
This is how PS does it.

Modified tests to test and work properly. Also added tests for the desired pipeline behavior which isn't implemented, yet.
So these tests are currently ignored.

Fixed the possibility to clear the $error variable.
Some further fixes.
All tests work now und Unix.
Merge pull request #194 from sburnicki/error_handling_and_pipelines

Error handling and reworked pipelines