Log: added report_error() for generic error reporting.¹

1: Go Go Exception Pointer. Fewer, simpler catches and
reduces boilerplate when handling errors from systems
that can have external or unintentional exceptions.
tidy: replaced template param `typename` with `class`; reduced unary template specs to one line.
Object/Defs: added SLUG_MAX_SIZE.
Cmd: refactored to direct transaction-free commands.¹

Cmd:
	reworked Unit class to serve direct command interface;²³
	removed Generic group, Cmd/Ops, and Stage classes.

System::Driver: removed command type tracking & registration.

System::Context: removed all command buffering and execution handling.⁴

1: This *significantly* reduces the amount of code needed (and
subsequently: complexity & maintenance) to implement a command.
I decided to do this because commands were simply too complicated,
and most platforms Hord will be used on are better served by keeping
a local set of changes and merging when (if) necessary (a la VCS).
This kind of functionality won't be around for a while, but it isn't
supremely necessary. The reduced complexity will make iteration much
faster. The design was ridiculous.

2: No more ResultCode as it only scratched the surface of the issue.
Userspace most likely wants a succinct error message to display to
the user and in a log -- with ResultCode, either the system or user
would have to specify messages attached to the ResultCode (a la
duct::Error), or make messages at runtime with contextual information.
The latter can just be done directly without having to maintain the
messages attached to result codes. You could use both, but, again,
it's really not needed nor used by anything. Query commands or
anything else that "returns" a different kind of thing can easily
have extra properties for it.

3: Public unit interface is now a single operator() with result and
error message properties. Protected interface has commit([message])
to supply the result/error message, and deriving classes can define
commit_impl() to do any cleanup.

4: System::Context is basically just for collecting hive-related
object refs now.