.travis.yml: enable 32-bit builds

As Ubuntu supports running 32-bit executables based on its multiarch
setup, we can enable the tests on 32-bit configurations as well.

Currently, valgrind fails for 32-bit executables on the 64-bit host.
This requires some more investigation.
.travis.yml: install libc6-dbg:i386 to run valgrind on 32-bit
.travis.yml: add g++-multilib/libc6-dbg:i386 only on BITS=32
Fix #104 ParseNumberHandler fails on 32-bit

Use a tighter bound.
Merge pull request #103 from pah/travis/32bit

.travis.yml: enable 32-bit builds
Add Stack::ShrinkToFit() and some refactoring.

Lazy allocation. (so Document not for parsing don't need to allocate
stack).
Remove redundant stackCapacity member variable.
Change Reader/Writer's stack allocator to CrtAllocator
Add ShrinkToFit() to StringBuffer and MemoryBuffer
Separate Document's value and stack allocator.

Use CrtAllocator for stack.
ShrinkToFit stack after parsing.
Fix a gcc compilation error
Remove unused macro
Merge pull request #105 from miloyip/MemoryOptimization

Memory optimization
add Doxygen documentation for configuration macros
add Doxygen documentation for error handling customization
Merge pull request #106 from pah/doc/config-error

Add Doxygen documentation for configuration macros and error handling
GenericValue: refactoring of operator==/!=

By restructuring the call forwarding of the various operator== and
operator!= overloads, new overloads can be added by simply adding an
additional member operator==.

Additionally, the "Ch*" overloads are dropped in favour of an SFINAE
version that removes the pointer variants from matching the templated
operator== (see also operator=).
GenericValue: add (optional) support for std::string

Some users may want to use RapidJSON with std::string objects.  This commits
adds an (opt-in) feature to include some basic support.  The implementation
uses std::basic_string<Ch> as generic string type.

Support currently covers:
 * construction
 * comparison

No special APIs for AddMember or PushBack have been added, as std::string
most probably requires copying (or an explicit StringRef() call).
add tests for RAPIDJSON_HAS_STDSTRING
.travis.yml: include RAPIDJSON_HAS_STDSTRING tests
Optimize number parsing for 64-bit architecture