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`.
add `Key()` method to `Writer` and `PrettyWriter`
add `Key()` to IterativeParsingReaderHandler` in `readertest.cpp`
fix `simplereader.cpp` and the `Key()->String()` forwarding in `BaseReaderHandler`
add `Key()->String()` forwarding to the `capitalize` example
enhance `IterativeParsingReaderHandler` to check for `Key()` events
removed unused argument names
reunified `ParseKey`, `ParseString`, and `ParseStringOrKey` again
fix for `Reader::ParseString()` implementation plus some minor code cleanups and additions
more changes
finally fixing `Reader::ParseString()`

It was a copy-n-paste error for the last argument of `Key()` and `String()`...
Merge pull request #134 from Kosta-Github/Kosta/add_key_method

add `Key()` method to the `Handler` concept
fix `SAX` documentation to also mention the new `Key()` method in the `Handler` concept
Merge pull request #136 from Kosta-Github/Kosta/doc_key_method

fix `SAX` documentation to also mention the new `Key()` method in the `Handler` concept
Fix a bug in dtoa on gcc

Discovered in https://github.com/miloyip/dtoa-benchmark/issues/1 with
assertion fail.