Cmd::Unit: removed System::Context forward declaration.
Object: changed type_info prop availability to single PropStateStore, made Unit ctor take type_info.
Data::Field: added cctor note; tidy.
IO/Defs: renamed SerializationFlags to PropTypeBit; simplified PropType serialize(); doc tidy & tidy.
IO::PropStateStore: added PropTypeBit-handling functions; renamed is_supplied() to supplied().

IO::PropStateStore:
	added supplies_all(), supplies_any(), and get_supplied();
	simplified ctor, added constexpr specifier;
	tidy.

test/io/prop_state_store: added new function tests.
IO::Prop: doc tidy.
Cmd::Node::Create: renamed ResultCode::unknown to unknown_error; tidy & doc tidy.
Cmd::Node::Create: corrected OOB logic for Error and Response stages.
IO::PropStream: added acquire_weak() for non-datastore prop streams.¹

1: Needed for loose serialization. Preparation for Cmd::Prop::Transmit.
serialization: added DynamicStreamBuf alias.
Cmd::Stage: removed standard layout requirement on Data.¹

1: Doesn't make sense. Old model was going to have type-casting
the data (ew) to the command's result type (with inheritance so that
it came first), but now command units store that in a safe manner.
Object::Unit: removed prop state changes in property setters.¹

1: Whatever changes a property should decide its new state.
In most cases, the callee will already know what the new state
should be -- e.g., (de)serialization always yields "original"
state, standard manipulation functions (e.g., Object::set_parent())
will know what to do by the difference between the previous and new
values. Most userspace will do the same or force "modified" for safety.
The point here is to avoid multiple state changes and to make the callee
handle state -- property accessors are dumb, dumb, dumb, on purpose.
Object::Unit: morph ID to NULL_ID if hive, added get_id_bare(); stored type in mvar.
Object/Ops: change identity prop state in set_parent(); doc tidy.
Cmd::Node::Create: avoided unnecessary search miss when hive is parent; tidy.