Various documentation improvements.

Change-Id: Iacea45ae0f602f49e46de472286a7a77ee20c301
Made CMakeLists.txt compatible with older versions of CMake.

By replacing DIRECTORY by PATH:
http://www.cmake.org/cmake/help/v3.0/command/get_filename_component.html

Change-Id: I6f5802deeda53dea443b255294235e43e7bb5389
Tested: on Linux.
Added support for custom allocators and uninitialized vectors.

This is helpful working with zero-copy use cases.

Bug: 15779698
Change-Id: I7097651ca9a432b5021b4e024da86398d1413ec7
Tested: on Linux and Windows.