Object: made ctors explicit; added missing docs for type_cast(); tidy.
IO/Ops: removed identify_all().¹

1: Will be replaced by Cmd::Hive::Init.
Object: replaced ID with GenID & utilities; added ID_HIVE.¹

Object:
	renamed ID constants to have prefix instead of suffix (ID_NULL
	instead of NULL_ID);²
	reworked use of intrinsic hive ID (ID_HIVE instead of ID_NULL).

Object::Unit: added has_child().

Object/Ops: merged unset_parent() and set_parent() to one function.³

Hive, Rule, Node: replaced ID and constants with Object::GenID.

Hive::Unit:
	has_object(): short-circuit if ID is reserved;⁴
	added find_ptr().

System::IDGenerator:
	made generate functions generic in ID type;
	moved generate() to header.

Cmd::Node::Create: reworked validity checking; reworked link_parents().

test: updated for ID changes and Datastore changes.

doc: added missing docs; tidy.

1: ID_HIVE is now distinct from ID_NULL.

2: Cmd constants up next.

3: Also expanded degeneracy handling.

4: The hive should never contain ID_NULL nor ID_HIVE.