utf8: short circuit on sequence length based on remaining characters.

If utf8_seq is longer than we have remaining bytes, just skip the further
checks below. Not necessarily faster, but easer to read that it is doing
"the right thing".
utf8: check for non-shortest form using known valid code points

http://www.unicode.org/versions/corrigendum1.html

We need to check that the non-shortest form of the UTF-8 is being used
when validating UTF-8. Higher level languages should be doing this when
they convert to their native string type, but we need it in C as well.

The two-byte representation for NULL is allowed (modified-utf8).
yajl: use bson memory functions from yajl.
better endian support

o support for clang's __builtin_bswap variants
o faster slow paths for 32 and 64 bit swaps
o hosting double on top of a 64 bit swap with some memcpys
correctly use BSON_STATIC_ASSERT

STATIC_ASSERT's go at the file level, not within a function body
json: check for missing key before appending field
json: check for missing key before appending any field
Merge branch 'mongodb-master'