add `Key()` method to the `Handler` concept

For more details see: https://github.com/miloyip/rapidjson/issues/132

This commit tries to minimize the required code changes and forwards the `Handler::Key()` calls to `Handler::String()` wherever possible in order to not break existing code; or at least not code deriving from `BaseReaderHandler` when implementing a custom `Handler`.
Yes.  I would suggest this as the preferred solution to the API change in the documentation.  And we should eat our own dog food.