First set of changes to make DTH run faster
- Break processing into 2 stages.
  - Project information and dependency resolution
  - Compilation
- Added caching to the dependency resolution and added
a project.json cached dependency.
- Modified ProjectExportProviderHelper to be public and to only
allow filtering the exports via a predicate.
- Removed ANIs from source completely
(this will make an appearance in a later change)
- Always compile when GetDiagnostics or GetCompiledAssembly is called
- This should also greatly reduce the amount of memory consumed by
default. The trade off is that we need to compile on demand when
the runtime requests but that seems to be very fast once roslyn is
warm.

#883 #889
Only reconcile if changes were made
Fixed a bug with duplicating sources
Fine tune compilation changes
- Remove source files update as precompilation
will be handled differently.
- Only emit the required target framework for assemblies.
- Requesting assemblies no longer compiles, the logic was changed to:
 - On the very first request for compilation, mark the request for assemblies.
 - When that assembly is outdated, trigger a recompile for that particular
   target framework. The idea is that you will be running the same project
   over and over again.
- Swallow IO exceptions as they are usually connections dropping (which
is expected)
Conservative project compilation
- Only return new data if the ILibraryExport has changed
- Don't send diagnostics back to the initial connection. Only
send them when requested.