Accept partial function as valid categorize method.

In CategorizeMessages, accept partial function as a valid method
to categorize messages.
Allow peer status callback to be deregistered.

If peer status callback registration is called with None, unset
the callback. Also, in case the reference to registered callback
goes away, unset the callback.
Keep track of global/local vars of each computation.

As computations are added, keep track of global and local variables
used by the computation at the time of setup. When a computation is
closed, delete those variables. This allows more than one computation
to be setup at any time. However, if the user program sets new global
variables, they won't be deleted - it is up to user program to cleanup
those variables.

Use try/except blocks when parsing messages to avoid discoro_server
crashing in case of invalid messages.