DeferredPopen: Allow popen class to be specified
Add get_uris RPC method to master
[NB] Implement basic task registration and execution

A task may be registered with the master by calling the `register_task` RPC
method.  The `register_task` method accepts a string containing a shell command
to be executed on the worker and returns a UUID for the task.  All further
interaction with the master regarding the task will use the task UUID as a
reference handle.

A pending task may be requested by calling the `get_task` RPC method.  The
`get_task` method returns a string containing a pickled `process.DeferredPopen`
instance.  The deferred `Popen` `make` method is then called by the worker to
run the corresponding command, forwarding any output to the master, using the
`stdout` and `stderr` RPC methods.

Note that currently no customization of environment variables is supported for
worker subprocesses.  This could be accomplished by adding an `env` kwarg to
the `register_task` RPC method, as a dictionary containing environment variable
mappings.  Alternatively, rather than accepting a shell command string, the
`register_task` method could instead accept a pickle-string-dumped
`DeferredPopen` object instance.  It is probably best to remove any requirement
for pickling, since that would make the worker non-Python-specific, i.e., it
should be relatively straight-forward to re-implement the worker in a
non-Python language using ZeroMQ bindings.
Modify worker to process all outstanding requests
Maintain mappings between task uuid<->worker uuid
Add serialization kwarg to `store` RPC method

The `serialization` kwarg can be set to one of:

 * `SERIALIZE__NONE` (default)
 * `SERIALIZE__JSON`
 * `SERIALIZE__PICKLE`

This value is added as a frame to data update messages published by the master,
as a result of calls to `store` RPC method.  The format of these messages is
now:

    [worker uuid][task uuid]['store'][serialization method][key][value]

where all frames are strings.  The intention here is that subscribers can use
the serialization method value to automatically de-serialize the value on
access.
Add stop_epoch_seconds kwarg to complete_task RPC

Add `stop_epoch_seconds` kwarg to `complete_task` RPC method.  If not
specified, the value is set automatically using the current date and time on
the master.
Add WorkersSink class: consume published task data