Clarify whitespace and newline rules.

This PR greatly clarifies the use of whitespace and newlines in TOML. A few notes and ramifications:

* Behavior on Windows is noted.
* Key and table names cannot contain any whitespace, even around brackets or dots.
* Keys and dot-separated table parts follow the exact same rules.
I think `"One\nTwo"` is *always* equivalent to `"""One\nTwo"""` regardless of OS. Similarly, `"One\r\nTwo"` is always equivalent to `"""One\r\nTwo"""`. That is, I don't think we need to mention OS here.

The key is that we permit either `\n` or `\r\n` to stand for a single line delimiter. I think everything after that is gravy.

To @ChristianSi's point, I'm not sure that we need to specify universal line handling in the spec. This lets the parser choose how to handle `Newline` in strings, which may include doing nothing at all and simply transmitting the string as is. We could suggest it, though:

> TOML parsers should feel free to normalize `Newline` to whatever makes sense for their platform.