SERVER-14852 AAE safe read/write primitives

Alignment, aliasing and endian safe read write primitives in the form
of DataView and DataCursor primitives.  These primitives provide safe
reads and writes with explicit endian variants that funnel through
std::memcpy to provide defined behavior.

Support for a safe packed struct idiom is also provided in the
encoded_value_storage class.