Merge pull request #725 from adamralph/629-630

#629 #630 changed to last in wins for line processors
Added IReplCommand and basic commands impl
added infra for Replcommands
added InstallCommand
reorganized files, fixed tests, added tests for CwdCommand and CdCommand
tests for ClearCommand and ResetCommand
tests for InstallCommand
added tests for Repl
Fixed the bug in ScriptEngine state manager. Unfortunately it didn't maintain the references correctly. This not an ideal fix at this moment as it requires copying the list of references over and over, but if we move to refactor the ScriptEngine we will address it anyway - this is out of scope here.
post-rebase fixes
#224 #237 #583
Fixed install command
changed discovery to exporedtypes non-abstract classes
do not scan dynamic assemblies
refactor: avoided ArgumentOutOfRangeException in Repl when taking substring
change Repl.Commands to IEnumerable
relaxed AssemblyReferences.ctor and made fields readonly
add Guards
removed redundant code
tidied up formatting

#224
#237
#583
red: added CwdCommandTests.ExecuteMethod.PreservesConsoleColors

#224
#237
#583
green: implemented CwdCommandTests.ExecuteMethod.PreservesConsoleColors

#224
#237
#583
refactor: *really* avoid ArgumentOutOfRangeException in Repl when taking substring

#224
#237
#583
green: added multiple casing to InstallCommandTests.ExecuteMethod.InstallsPackageUsingArg2AsPreReleaseFlag

#224
#237
#583
refactor: restrict install command pre-release flag to 'pre' only

#224
#237
#583
red: added ReplTests.TheExecuteMethod.ShouldEvaluateArgs, ShouldEvaluateStrings, ShouldSurfaceArgumentCompilationErrors, ShouldSurfaceArgumentExecutionErrors, ShouldSurfaceIncompleteArguments
removed ShouldPassArgsToCommand, ShouldUseObjectIfArgCanBeEvaluatedToValue

#224
#237
#583