Fixed a bug that failed loading the config.ps1 script on startup if the project is in a directory with spaces.
Extracted formating of config command to function, wrote unit test for it.
Adjusted FormatCommand to dot-source, s.t. it works with scopes
Merge branch 'master' into config_load_fix

Conflicts:
	Source/PashConsole/FullHost.cs
	Source/TestHost/Tests.cs
Merge pull request #168 from sburnicki/config_load_fix

Fix for loading config.ps1 on startup
Basic support for PSSnapIns

These commits introduce basic support for PSSnapIns. It focuses on snapins that only
add cmdlets to Pash. In the course of this support I made some small changes
and bugfixes to the SessionStateScope stuff. For example, it can check and compare items
correctly instead of relying on their name only.
Snapin handling was moved from the CommandManager to SessionStateGlobal. The way the default
snapins are loaded was refactored to be more usable and general, s.t. the functionailty can
be used for adding snapins in general.

What does currently not work is:
* Load Snapins in the Windows default way (by looking in the registry for installed snapins).
  It currently only works by passing paths to a snapin.
* Support for provider snapins. Although The basic support was implemented, s.t. it *could*
  work in general, it isnÄt tested in any way. Some known missing features for provider support
  are marked in "TODO:"s with the #providerSupport tag.
Merge pull request #184 from sburnicki/snapin_support

Basic support for PSSnapIns
Pash can be started with commands to be executed

Pash can now be used to simply excute commands (and therefore scripts), so it is not only usable in interactive mode.
Proper tests were added to test the behavior of FullHost.

Some internal method were added to be able to test the interactive input properly.
Added some tests for the PashConsole itself

Notice that they take a while because of the long startup times of Pash.
Changed tests to work on windows. Some fixes

The tests needed some changes to work properly on windows.
FullHost was changed to be more robust in uncommon environments (Console
with redirected stdin/stdout) and to work aso if the calling assembly
was shadow-copied (when loading the config script).
Merge pull request #185 from sburnicki/start_with_script

Start Pash with commands as arguments
Cleanup. Moved Ctrl+C handling to UI.

All "Console" related stuff is now in the LocalHostUserInterface class, where it belongs.
The rest of the application should be independent from the Console class now, s.t. the
user interface is completeley exchangable.
As Ctrl+C handling should be possible and directly handled by the user interface, some
changes in other classes have been made in order to access the currently running pipeline
from the user interface an stop it.
This behavior is better than throwing an exception in "ReadLine", because each call to ReadLine
would need to implement the "stop pipeline" behavior on its own.

Last but not least, code was removed that was duplicate/not in use/in comments and unnecessary.
null objects shouldn't return any string when being printed
Added PashConsole.Tests to nunit project
Merge pull request #186 from sburnicki/refactoring

Cleanup, Refactoring, Minor fixes
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.
    Upgrade to Mono 3.2.5 on Travis.

    Per [1] it's easier to do this if we ask Travis to run on a Mac host.

    1: http://stackoverflow.com/questions/16751772/how-do-i-use-travis-ci-with-c-sharp-or-f/16751773#16751773
Merge pull request #190 from Pash-Project/Travis-Mac5

Upgrade to Mono 3.2.5 on Travis.
TargetFrameworkVersion=4.5
Get Irony from NuGet