Add explicit MemberIterator, return MemberEnd() from FindMember()

As discussed in #41, returning a `NULL` pointer from `FindMember()` is inconsistent with, e.g. `std::map`.

This pull-request adds an explicit `GenericMemberIterator` template class to implement a "Random Iterator" without providing the implicit conversion to `bool` (by no longer being a plain pointer).

The user can keep the pointer-based implementation by defining `RAPIDJSON_NOMEMBERITERATORCLASS`.

Fixes #41.