Added custom ops for mind authoring.

These ops are more canonical than trying to fudge it with the
undocumented and unclear "thought" operation.
The "Commune" op is used when asking an entity about its thoughts, while
the "Think" op is used when sending new thoughts.
Use Think and Commune for thoughts.
Fixed incorrect "return".
Handle new Think op correctly.
Added a relay mechanism for operations.

The relay mechanism, through the new internal Relay operation, allows
one external client to relay an operation to another external client,
and get the response back.
This can currently only be used by Creator clients. It's main use is for
mind introspection.
Added ability to relay ops through World.

Since the World entity is special, in that it always exists, it's
suitable as a point through which out of game instances can relay
operations to in-game entities.
Added "soft" exit option.

A "soft" exit tries to first query any external minds for their
thoughts, so that they can be persisted. This might take up to five
seconds.
Made Relay struct class local.
Set relay timeout to five seconds.

That ought to be enough.
Added feature for async mind persistence.

This is done through the MindInspector which queries entities for their
minds, and asynchronously emits a signal when thoughts arrive.
Set up mind persistence through soft exit.
Use "commune" for goal info.
Only send thoughts to entities with minds.
Try to print out more info is std exception.
Spelling.