- Replace some boost::bind's with forwarding lambdas
- Properly import boost::bind placeholders (_1, _2, etc.) rather than
relying on the long-deprecated (and now removed) boost behaviour of
importing them into the root namespace.
When no little/big endian flag is given to the writer, it stores
data in host endianness. When loading, if no flag is set, it also
assumes host endianness. This works as long as the loading and
writing are done on machines with the same endianness.
We change this to default to little endian when saving. This will
cause the loader to see the little endian flag, and swap endianness
when loading on a big endian machine. Similarly, writing on a big
endian machine will swap on save, and a little endian machine will
load little endian data.