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.
Fixed monodevelop's code formatting style
SessionStateProxy should return variable value

Before it returned as PSVariable object which shouldn't be the case by specification.
Merge pull request #195 from sburnicki/minor_fixes

Minor fixes
Revert "Upgrade to Mono 3.2.7 on Travis"

This reverts commit 723d5aa2e81904e8fd86cb258917fb73ca7e90f3.
Revert "Get Irony from NuGet"

This reverts commit 8203e4948bc777602c5cfe1fdd068c19805f97c6.
Revert "TargetFrameworkVersion=4.5"

This reverts commit 97aca992f619635056aabbac4818cc69a4022415.
Revert "    Upgrade to Mono 3.2.5 on Travis."

This reverts commit fe1f2d4111b170f8e375e4e071323c2d6eb40178.
Merge pull request #196 from Pash-Project/revert-new-mono

Revert new mono/nuget
add NCRunch to .gitignore
Merge pull request #194 from sburnicki/error_handling_and_pipelines

Error handling and reworked pipelines