Optionals Refactoring & Fixes

* Move optional property from InferedProperty to InferedType to reduce the number of possible invalid states that can be represented. Added checks for the other ones
* Increase test coverage and mark code paths ont covered with a comment
* Fixed handling of optional records in JsonProvider (fixes #163)
* Reduced the number of cases where heterogeneous types are used in JsonProvider (fixes #69)
* Fixed <type> option option being generated on some cases in JsonProvider and XmlProvider (fixes #352)
* Treat "", null and missing values in the same way in JsonProvider (fixes #66)
* Fixed homogeneous arrays to have the same null skipping behaviour as heterogeneous arrays in JsonProvider
* Fixed handling of optional elements in XmlProvider (fixes #351, #353)
* Fixed CsvProvider generating column names with only a space
Merge pull request #442 from ovatsus/master

Optionals Refactoring & Fixes
Fixed namespace declarations generating attributes in XmlProvider (closes #441)
Fix expected for Freebase and WorldBank
Return NaN for missing data in WorldBank indicators instead of throwing an exception (closes #224)

Went with option 3
Update release notes
Merge pull request #444 from ovatsus/master

224 + 441
Don't throw exceptions in JsonValue.AsArray, JsonValue.Properties, and JsonValue.InnerText

Cleanup freebase json
Prototype for #422
Disable failing tests in TC
Document freebase api env var (closes #445)
Merge pull request #446 from ovatsus/master

Json + Freebase fixes
Update SignatureTests.fs
Update RELEASE_NOTES.md
Doc fix
Update to documentation to mention userinfo authorization is supported

Currently the documentation does not mention that userinfo part is
supported to create authorization credentials. These updates add a
mention of it.
NetworkCredential object intializer syntax used to work around MS/Mono .NET difference

The Microsoft flavor of .NET NetworkCredential has a constructor
overload that accepts SecureString as a parameter, whereas the Mono
flavor does not. Both of the implementations do have the parameters as
property setters, so instead object initializer syntax is used to
initialize the objects.
Merge branch '158-Http-authentication' of https://github.com/veikkoeeva/FSharp.Data into 158-Http-authentication