Log: made operator<< take OutputStream instead of std::ostream.¹

1: Apparently this isn't necessary.. but.. but the standard operator<<()s
should by causing type-punning due to the return value!
Log: switched to duct::StateStore; some tidy.
IO::Datastore: switched to duct::StateStore.
IO::Datastore: generalized & simplified base exception handling; updated test dummy.