CMake build

This CMakeLists.txt builds and installs the BON library and the bon2json
and json2bon utilities.

It forces the language level of non-MSVC compilers to C99 as constructs
in the source code rely on C99-like declarations of identifiers. It's
not quite perfect, as not all non-MSVC compilers understand the -std=
directive, an enumeration of Clang/GCC/Intel-Linux/PathScale would
probably be better.
Linux build fix for endianess and varargs

On Linux, the way to test for endianess is using <endian.h> and testing
__BYTE_ORDER vs. __LITTLE_ENDIAN or __BIG_ENDIAN. In this patch, we
simply define __LITTLE_ENDIAN__ or __BIG_ENDIAN__ akin to how OS X does
it.

We include stdarg.h for va_list, as the definition is not guaranteed to
exist otherwise.