Async loading for XmlProvider and JsonProvider

This partially implements #18

There's a corner case with arrays and async that is still not working at runtime, reproducible by running the `FSharp.Data.Tests.DesignTime.SignatureTests.Generating expressions works (Json,GitHub.json,false,,)` test, I'll fix that later

I'll also update the documentation before merging this

@tpetricek doing the same for CsvProvider, we can't use the same pattern for the default constructor. Do you think we should keep the constructor as is and add a static method for the async version, or should we remove the constructor and get two static methods, like in the other providers? The current solution with the constructor has a big annoyance, which is VS intellisense doesn't work for the tp parameters on expressions like `new CsvProvider<`, but on the other hand, `GetSample` is ugly and it would be nice to not propagate it to CsvProvider also. Maybe we could take the oportunity and rename it? Maybe an overload of `Load`/`Parse` with no parameters?