cache - allow access to old (outdated) entry when creating cache entry

this allows to reuse the SourceText object which will enable incremental
parsing/updating of syntax trees
buffersync - introduce a SourceTextService to allow buffer updates

Makes the Rolsyn compiler ask for source text from a service when building
syntax trees. Allows to record source text changes when a corresponding
messages is being received
buffersync - incorporate feedback
buffersync - incorporate feedback
buffersync - incorporate feedback
buffersync - sorted usings
Merge pull request #767 from jrieken/buffersync

dth - enable buffer updates outside the file save cycle
Fixed tests and updated project references.
Add all folders to the cache dependency (prelim until file watcher work is in)
Updating to release NuGet.config
Merge branch 'release' into dev
Updating to release NuGet.config
Merge branch 'release' into dev
Switching to dev NuGet.config
Use synchronous operations on ZipArchive in CoreCLR
Enable to script block in Mono environment

Rules:

In non-mono environment, if the ComSpec exists the script block will
wrapped in cmd /C, otherwise the first argument will be used as FileName
for the new process.

For mono environment if the given script path can be found after appending
.sh to it then execute that script with /bin/bash. Otherwise use the
script name as FileName for process start info.
Moving files copying to a batch file
Reorganize the makefile

This is the initial draft to reorg the makefile. The motivation behind
this change is to clearly seperate what projects not to be built on mono.
In addition some ambigous logics are rewritten.

1. #build-compile task is override
2. klr, klr.core45, and klr.net45 as the only three native projects are
built in their own tasks. Readability is therefore improved.
3. The list of cross-platform projects are clearly listed.
4. Skip building klr, klr.net45 and klr.core45 on Mono
Update source path in nuspec files for *nix compatibility
Make Mono Entry build cross-platform