Handling edge cases in JSONEncoder/JSONDecoder key conversion strategies (SR-6629)

Without knowing the current implementation, that is how I had assumed it would already work. Even though it is not, I think this sounds like the most clean solution, especially since I'm not sure types that use allKeys even want the converted form most of the time.

The issue described in this thread keyDecodingStrategy and keys with custom raw values would probably also go away with approach 1, right?