Style tidy & stupid fixery.  Added MetaField::type_info::construct().

Driver: made constructor explicit.

Hive: made ID constructor explicit.

MessageBuffer: made capacity constructor explicit.

MetaField: added construct func to type_info.
Super style tidy.
Restructured; see full commit log.

Moved code and documentation according to group¹.
Namespaced and renamed classes according to group:

	Field -> Data::Field
	Record -> Data::Record
	:MetaField -> Data::MetaField
	Metadata -> Data::Metadata
	MessageBuffer -> Msg::Buffer
	Object -> Object::Unit
	Rule -> Rule::Unit
	RuleState -> Rule::State
	Node -> Node::Unit
	Column -> Node::Column
	Hive -> Hive::Unit
	PropInfo -> IO::PropInfo
	Datastore -> IO::Datastore
	InputPropStream -> IO::InputPropStream
	OutputPropStream -> IO::OutputPropStream
	IDGenerator -> System::IDGenerator
	Driver -> System::Driver

Definitions from `common_enums.hpp` and `common_types.hpp` were moved
to their respective groups in `Defs.hpp` headers.

1: NB: Documentation layout is slightly different from actual
namespacing. Trying to maintain scope explosion in the code.