Merge pull request #183 from pah/feature/wrapped-new-delete

Add customization macros for global new/delete
Add unit tests for StringBuffer.
Stack<>: add _ suffix to member ownAllocator_

For consistency, all member variables should follow the same pattern.
MemoryPoolAllocator, Stack: lazily allocate Allocators

In order to make the constructors more efficient, especially
in the context of C++11 move semantics, the (dynamic) allocations
in MemoryPoolAllocator and Stack should be performed lazily.

Move the allocations to the first use of the allocator in both
classes.
DocumentMove tests: compiler error due to -Wsign-compare

On GCC 4.9, the documenttest.cpp fails to compile in C++11 mode,
as the MoveConstructor/Assignment tests contain left-over
comparisons between signed and unsigned expressions.
Merge pull request #184 from drewnoakes/master

Add unit tests for StringBuffer
Merge pull request #187 from pah/fixes/sign-compare

DocumentMove tests: compiler error due to -Wsign-compare
Merge pull request #188 from pah/feature/lazy-alloc-allocators

MemoryPoolAllocator, Stack: lazily allocate Allocators
Add initial CMake build support.

This CMakeLists.txt provides targets for unittests, perftests and all
example programs.

Note that this file does not copy the `bin` folder contents to the
target directory, which only applies if you do out-of-source builds. In
which case you may copy the folder manually, or ideally update
CMakeLists.txt to perform this. I didn't manage to get this to work.

It's possible the minimum CMake version required is actually lower than
that published, but I cannot test. Users of this file on earlier
versions should modify this if earlier versions do in fact work.

To use:

    rapidjson$ mkdir out
    rapidjson$ cd out
    rapidjson/out$ cmake ..
    rapidjson/out$ make unittests

This CMake file has also been tested with beta builds of the new CLion
IDE and works well.

You may also configure the build using a tool such as `ccmake`.

    rapidjson/out$ ccmake .
Build Google Test as a library.
Specify same compiler flags for unittests/perftests as used with gmake.

-march=native -Wall -Wextra -Werror -Weffc++ -Wswitch-default
Don't explicitly list header files. CMake deduces these itself.