io: STREAM -> Stream.

No need to scream typenames.
io: read(object) now reads into a temporary buffer.

This is to avoid partial writes to t_inst. Now, t_inst will only be
modified if the read is entirely successful.

Also, byte order reversal is now done via std::reverse and the byte
order is checked against the host order, not the network order.
io: write(object) reverses using a temporary buffer, checks against host order.

- temp buffer: Avoids a bunch of small 1-byte writes to the stream.
  Also allows me to let std::reverse_copy handle the byte swapping
  rather than doing it myself.

- order check: should have checked against host order, not network
  order, since it's only relevant for non-host byte orders.
io: Add doxygen doc comments.