GenericValue: improve operator[] disambiguation

In the original disambiguation fix for `GenericValue::operator[]` (#170),
the documentation has been missing, which led to quite badly rendered
Doxygen pages.

During a cleanup, I've realized that a much simpler disambiguation is
possible:

````cpp
  GenericValue& operator[](SizeType idx); // array
  template <typename T>
  GenericValue& operator[](T* name);      // object
````

This approach works, as non-template functions are preferred over
template functions.

In order to improve the error messages, the pointer type is restricted
to `(const) Ch`.

Update `tutorial.md` to drop the ambiguity warning.
Merge pull request #174 from pah/cleanup/index-operator

GenericValue: improve operator[] disambiguation
GenericValue: improve documentation for operator[]
Merge pull request #175 from pah/cleanup/index-operator

GenericValue: improve documentation for operator[]
Added MemoryPoolAllocator to GenericDocument moveunit tests. Added comment in GenericDocument move assignment operator explaining why the static_cast is needed to move the base class.
Merge branch 'master' into issue123movesupport