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
Merge branch 'master' of https://github.com/fsharp/FSharp.Data