:Data::MetaField: constified non-moved values in ctors.
IO/Ops: added load_props() and store_props().
IO/Ops: added weak variants for load_prop()/store_prop() and its complements.
Cmd: tidied command flows.
doc/pages/Object/Hive: corrected System::Driver ref.
IO::PropStateStore: use supplies_any() instead of supplies_all() for supplies();¹ tidy.

1: One less operation.
IO::PropStateStore: added serialization functions.
IO/Defs: added Linkage enum.
IO::StorageInfo: new class.¹

1: This will be used for exposing storage info from IO::Datastore.
IO::Datastore: added storage info map.¹

1: Largely necessary due to (upcoming) HiveInit command, and want
to avoid dupe data (Hive's primary prop, which will be removed).
Cmd::ID: moved properties below SMFs.
premake: made src glob more specific.¹

1: Captures indev files that shouldn't be captured.
Object: reworked object and unit type hierarchy.

Object:
	renamed Type to BaseType, added enum UnitType;
	added class GenType<T> and a std::hash specialization;
	renamed get_type_name() to get_base_type_name(), moved def to header;
	added construct() to struct type_info.

Hive,
Node:
	added UnitType and remapped Type;
	added UnitBasic class.

Hive::Unit:
	deleted default ctor;
	removed idset property and data props.¹

Rule:
	renamed enum StandardTypes to UnitType;
	derived Object::type_info from struct type_info.

System::Driver:
	changed m_rule_types to take amorphic type, renamed to m_object_types;
	added register_object_type();
	replaced get_rule_type_info() with get_object_type_info();
	added hive_type param to placehold_hive();
	added standard type registration param to ctor;

IO::Datastore::create_object():
	take Object::type_info instead of Object::Type.

1: The "data" of a hive is already covered by the index in
IO::Datastore, and the forthcoming HiveInit command will handle
hive init from the datastore or a remote endpoint.
Cmd::Node::Create: added unit_type to Props and type lookup.