Step 1 of RoslynScriptEngine refactoring favoring composition

To avoid doing everything at once, I'd like to create small PRs for #550, make sure we are all in the same page and get them in one at a time.

To discuss before this one gets in:

1. Should we use real .dll files to get calls to `Assembly.Load` and `AppDomain.Current.Load` to work in "unit" tests or just create a wrapper for those?
1. Should we move `InMemoryAssemblyLoader` to a separate project? It has nothing Roslyn specific.

Looking forward to your feedback.