Merge pull request #247 from scriptcs/dev

Ship v0.4.0
Merge branch 'dev'

* dev: (59 commits)
  Increment version to v0.5.0
  exported IConsole and ILog from Autofac to MEF Extensions
  fix breaking build after latest merge
  added test for #r in GAC, moved ReplTests.cs to ScriptCs.Core.Tests.csproj to reflect proper structure
  Followed XUnit convention
  Revised filesystem test name and refactored into new class
  fixed edge case of null reference
  change fileloadexception to filenotfoundexception
  added tests for verifying that assembly gets removed from REPL reference list if it wasnt found. Also check - if file exists reference by absolute path, otherwise try get it from GAC
  add assembly reference to REPL reference list regardless whether it exists or not. Then catch on exception and remove reference if needed
  pass exception to REPL from the catch block too
  fixes #306 - if there is compile/execution exception it gets shown in the console (script mode) or REPL (repl mode)
  ScriptCs and ScriptCs.Core should reference ServiceStack.Text v3.9.47 instead of v3.9.44
  Update ServiceStack.Text from 3.9.44 to 3.9.47
  Using correct assertion library and returning the correct path if the path is a filename or directory. Would prefer if it was all in memory, but unsure as to how it should be designed.
  Refs #296 - Ensure that the method returns a directory path
  Fixes #296 - Assembly reference missing with ..
  Add logic to grab the delta of binaries if there are changes in the installed packages Fix for https://github.com/scriptcs/scriptcs/issues/2
  Fixed wrong argument passed from CommandFactory to RestoreCommand. Fixes #298
  Added ScriptResult.cs and tests
  ...
added ScriptCs/ScriptcsConsoleAppender.cs
changed unnecessary info logging to debug
REPL will now respect IConsole for logging output
Update CONTRIBUTING.md
Update CONTRIBUTING.md
Refs #321 scriptcs -install ScriptCs.AzureMobileServices

* `GetWorkingDirectory` returns the current directory if the path is
null/whitespace.
* Fixed assumption that the directory/path would exist.
* Added additional unit tests.
Refs #321 scriptcs -install ScriptCs.AzureMobileServices

* `GetWorkingDirectory` returns the current directory if the path is
null/whitespace.
* Fixed assumption that the directory/path would exist.
* Added additional unit tests.

Fixes #321.
Increment version to v0.5.1
Merge branch 'master' into dev

* master:
  Increment version to v0.5.1
  Refs #321 scriptcs -install ScriptCs.AzureMobileServices
  Update CONTRIBUTING.md
Added AutoFixture.AutoMoq
Refactored command tests to use Autofixture for cleaner, less brittle tests.
Cleaned up most tests to a simple AAA pattern
Refactored VersionCommand and test to use IConsole
Slimmed down ExecuteReplCommandTest by using mocks instead of fake class
Fixed failing build after merge
Fixed build and removed old tests for CleanCommand and ExecuteScriptCommand.
Re-added tests that got lost in merge.
added missing guard clauses
upgraded to latest version of LiteGuard.Source
Merge pull request #340 from adamralph/guard-clauses

Updated to LiteGuard 0.7.0 and added missing guard clauses
Merge pull request #334 from filipw/320

Added support for ILog logging in REPL