Implemented TabExpandeUI class

This class allows to cycle through and render possible tab expansions.
If there is just one expansion, it's chosen.
If there are more expansions, first the common prefix is chosen, and afterwards
the TabExpander will cycle through the possible solutions, highlighting the selected
one.
TabExpansion can be aborted with Escape.

getline.cs diff might be bigger than the actual logic changes as it's style was a little
bit asjusted to the project convetions.
Implemented TabExpansion in Pash

Pash has now working TabExpansion and searches through commands and the filesystem.
Multiple choices in TabExpansion can now be navigated by using the arrow keys.
Include 'cd' command in FileSystem tab expansion
Better cmd splitting with quotes, neglect hidden files
Basic support for variable and function expansion
Support for cmdlet parameter expansion
Small rendering fixes
Added support for scope prefixes, more logic
Fixed rendering bug
Added support for paths with tilde
Rendering fixes and fixed colwidth for suggestions
Aborting tab expansion softly if asking user and a key is pressed
Added file for tests; user interface usage improvements
Add AppVeyor status.
Added tests, fixed minor bugs
Fixes concerning slashes on windows
Reversed a change introduced accidentally
Using InitialSessionState instead of config.ps1

We need the stuff defined in config.ps1 everywhere, not only in the Pash application.
However, loading the config.ps1 everytime a runspace is opened is pretty slow (~200ms slower)
which has a significant influence on the time of the tests, as for nearly each unit test a Runspace
is opened.

InitialSessionState seems the way to go to define all default stuff. In the long run also
the default snapins should be loaded there, not in SessionStateGlobal
Delayed resolving of aliases, better errors if it fails
Added a few tests