Metadata: implemented deserialize() and serialize()¹.

1: It's *mildly* terrifying. … Don't say I didn't warn you.
doc: corrected grouping for IO members.
Rule::type_info: made construct() noexcept and doc'd. Doc tidy.
Object::Unit: obliterated (owner, id) ctor.
Added LockFile class and test¹.

1: POSIX-based, naturally. Two new error codes:
  lockfile_immutable, and
  lockfile_acquire_failed.