IO::dynamic_streambuf: added retain_input_position param to commit_direct().¹

1: Certainly a case where you would want to reset the position.
Now callee will have to decide whether to retain or reset position.
GR: tidy.
IO: added Cacophony support header.¹

1: Only providing serialization for IO::dynamic_streambuf at the
moment; will add as necessary. Serialization support shouldn't go
very deep to make sure the user is serializing complex constructs
the way they really want to serialize them. However, it's bothersome
for users to write serialization for types not in their namespaces
due to ADL. :<