Distinguish whether using interative IO or not

Some features, as reading from the user (Readline in LocalHostUserInterface)
might only be available when Pash is used within a console, like the PashConsole/FullHost.
However, it might also just be used as a framework, which should not depend on user
interaction but throw an exception instead, which can be catched and reacted on.
Refactor: GatherMissingParameters will get all parameters to be gathered.
Support for prompts/gathering missing cmdlet parameters
Test Suite adjustments to work with changes

The TestHostUserInterface derives from LocalHostUserInterface now in order to make
more elaborate functions as the Prompt() function of the LocalHostUSerInterface better testable.
Therefore, the TestHostUserInterface overrides all ReadXXX and WriteXXX functions as all other
functions will depend on those now.

Also, it's now internally optional to add read data to the history. Currently on non-Windows systems
getline.cs is used as a cmdline interface which also supports a very basic history. However, simple reads
shouldn't end up there.
Tests & bugs fixed for interactive cmdlet parameter gathering
Merge pull request #212 from sburnicki/parameter_input

Interactive parameter input for missing mandatory parameters