Get Slave to use the new serialization class.
Get Master to use the new Serialization class and fix process_job method.
Update the set of default attrs sent by messenger for TaskUnit.
Block on poll() for receiving in the Messenger.
Use an empty config dict when no config file provided in LocalNode.
Use .items() when iterating over the dicts in serialize method.
Only serialize json.dumps() once at the end.

Before we were json.dumps()'ing each attribute. This can lead to
some funny stuff happening when serializing strings. E.g.
if object x has attr foo='foo', then final serialization because
of the double dumps will have foo: '"foo"' which is incorrect.
Set the initialization parameters in deserialize method after each individual parameter has been deserialized.

mandatory_args and optional_args were being populated before e.g. methods
had been properly deserialized etc. This is a problem because then the
method's source instead of the method itself get's passed as a parameter.
Use set_processor method for setting the processor during init.
Import the required modules from within the job methods.

This is the preferred style for now. If any module is needed
by the processor e.g., the processor should include it at the
top of the function before other code.