Added automatic quoting of properties with invalid characters

Changed boolean `JsonTextWriter.QuoteName` to `QuoteNameHandling` (`Auto` value added to quote invalid characters). Previously setting `QuoteName` to `false` could generate unreadable files. Name characters are checked only when `QuoteNameHandling` is set to `Auto`, to avoid performance penalty (which should be minor, but just in case). Unit test included.

Use case: JSON is a good generic human-readable and human-writable format, not only when JavaScript is involved, but as a format for configuration and other files, where readability is most important and compatibility with JS is completely redundant. This is why disabling quotes is a useful feature, even though it's not strictly JSON.

Exact use case: `DbConnectionStringBuilder` class generates properties with spaces.

P.S. Sorry for possible mistakes in doc comments, my native language is C#.