Async support, renaming and refactoring

-Added AsyncLoad(string uri) to CsvProvider, JsonProvider and XmlProvider (fixes #18)
-Renamed SampleList to SampleIsList
-Renamed Separator to Separators.
-CsvProvider now uses GetSample instead of constructor like the other providers
-Refactored generation of Parse/Load methods common to the Csv/Json/Xml
-Moved AssemblyResolver to separate file
-For Json/XML, when the top level returned element is an array, use "GetSamples" instead of "GetSample"
-GetSamples for when the sample is a list (fixes #208)
-Doc changes (fixes #207)
-Reorder some of the parameters to be more consistent between providers
Fixes #225
Fixes #227
Merge pull request #223 from ovatsus/Async

Async loading for XmlProvider and JsonProvider
Merge pull request #229 from ovatsus/Async

Fix SafeMode when there's more rows than the InferRows limit
Update RELEASE_NOTES.md
Merge pull request #230 from ovatsus/Async

Fixed XmlProvider SampleIsList not working correctly
Update RELEASE_NOTES.md
Improve SignatureTests

* Explore the freebase graph deeper but not as wider, so the total output is smaller and the test runs faster, but we explore more different areas of the graph
* Include quotations output in tests, so we can see if we're generating weird or unperformant expressions. This way we also test if the signature changed and if it didn't crash while generating the expressions in the same test, saving overall time
Merge pull request #232 from ovatsus/master

Improve SignatureTests
Csv readlines was reporting incorrect line number on files with \r\n newlines (causing the "SafeMode works when inferRows limit is reached" test to fail) and also on csv files without headers
Merge pull request #233 from ovatsus/master

Exceptions raised by CsvProvider and CsvFile were reporting the wrong line number when reading files with certain line endings
Refactored Json conversions to share more logic with Csv and Xml

* Previously, the Json optional properties used JsonRuntime.ConvertOptionalProperty on top of the base case of non-optional properties. Now it's the other way around : all conversions return optionals, and for non optional properties we call JsonGetNonOptionalValue
* Separated Conversions into TextConversions and JsonConversions
* Separated out ConversionsGenerator from Helpers
* Replaced some untyped quotations by typed quotations
* Prevent operations being done twice. Eg, previously was "Operations.GetNonOptionalValue("Attribute surname", Operations.ConvertString(XmlOperations.TryGetAttribute(this, "surname")), XmlOperations.TryGetAttribute(this, "surname"))" now it's "let value = XmlOperations.TryGetAttribute(this, "surname") in CommonRuntime.GetNonOptionalValue("Attribute surname", CommonRuntime.ConvertString(value), value)"
* Remove unneeded json packing followed by unpacking right after it
* When a double is missing, return NaN instead of raising an exception
* When a string is missing, return "" instead of raising an exception
* Always return "" in JsonValue.AsString(), never null (to be consistent with Xml and Csv, and to be more inline with F# general practice)
* Csv headers with just whitespace were not getting set as ColumnX
Merge pull request #234 from ovatsus/Refactoring

Refactored Json conversions to share more logic with Csv and Xml
Fix disposing of FileSystemWatcher (fixes #236)
Fix disposing of FileSystemWatcher (fixes #236)
Fix disposing of FileSystemWatcher (fixes #236)
Fix disposing of FileSystemWatcher (fixes #236)
Fix disposing of FileSystemWatcher (fixes #236)
Fix disposing of FileSystemWatcher (fixes #236)