GenericValue: add move constructor/move assignment

When C++11 is enabled, several algorithms will fail, if GenericValue is
neither copyable, nor movable.

Cherry-picked from 8005b55.
always include "meta.h", as it is not only used for member iterators
meta.h: disallow direct inclusion
rapidjson.h: add RAPIDJSON_GNUC as GCC version shortcut
detect rvalue reference support (RAPIDJSON_HAS_CXX11_RVALUE_REFS)
always define RAPIDJSON_HAS_STDSTRING (default: 0)
valuetest: avoid underscores in GoogleTest tests

See https://code.google.com/p/googletest/wiki/FAQ#Why_should_not_test_case_names_and_test_names_contain_underscore
GenericValue: add rvalue-ref overloads to AddMember/PushBack

Directly allows temporary GenericValues as parameters:
  v.AddMember("foo", Value(s.c_str(),alloc), alloc);
valuetest: add tests for rvalue references, reenable erase/remove pattern
GenericValue: add RAPIDJSON_NOEXCEPT

Added basic detection of `noexcept` support for some compilers, added
corresponding RAPIDJSON_NOEXCEPT annotations to
 * non-allocating constructors
 * (move) assignment
 * Swap
GenericValue: add some more RAPIDJSON_NOEXCEPT

 * Move()
 * RawAssign()
 * SetStringRaw()
GenericStringRef: add NOEXCEPT, add ASSERT

 * constructor from array is RAPIDJSON_NOEXCEPT
 * constructor from plain pointer missed an assert
Merge pull request #128 from pah/feature/cxx11-move

Initial C++11 move support