Document traits of types using <type_traits> and static_assert in tests.

The tests state the current traits of types Document, Value and
StringBuffer. There are slight differences between them. It seems like a
good idea to extend this approach across more types, and to review the
expected traits across the board.
Merge pull request #189 from drewnoakes/feature/static_assert

Document traits of types using <type_traits> and static_assert in tests