Use canonical method.
Improve external minds management.

We now register a an external mind with the ExternalMindsManager and
then let the manager make sure that there's an external mind connected.
When the external client is disconnected the manager will try to find a
new client to handle the mind.
Disable debug by default.
Handle possession without blocking.
Spelling fix.
Try to reconnect if disconnected.
Reset the possession client when disconnected.

This is the cleanest way currently. But perhaps we should try to retain
the minds and see if the thoughts can be transferred when connected
again?
This would be a future operation though.
Fix logging.
Make sure minds are repossessed correctly.
Improve handling of already managed minds.

Though we need to alter the way the MindProperty requests possessions,
as we don't want to generate possession requests for anything that's
handled by a client anyway. Problem right now is that we won't know that
at the time of MindProperty being applied.
Don't request possession if no mind prop data.
Prefer nullptr for expressiveness.
Hook up interactive signals.

So that the client can be shut down normally.
Use a proxy mind on character.

This is a mind which only registers the world, and then is responsible
to send what it knows about the world to any external mind that's
connected to the character.

Currently it only sends the thoughts that's been sent to the character.
More correctly set the thought type.