Jortel node sync cancel

This PR contains changes to the *nodes* package to support the cancellation of node synchronization requests.  The cancellation of an in-progress request within the nodes subsystem is detected by checking the status of the synchronization request at strategic locations in the code.  This allows for a graceful and orderly shutdown.  These locations consist of processing loops and file download callbacks.  When cancellation is detected within handler strategy, the summary report is updated and synchronization work is essentially discontinued and terminates quickly.

While doing this work, it seemed like a better approach was to model the synchronization request itself as an object which could be passed around.  In doing this, we would no longer model request specific things as attributes of the strategy objects (like reports).  This was wrong in the first place.  This change accounts for some widespread but trivial refactoring which makes the PR seem bigger than it really is.

I also took the liberty of converting docstrings to ReST and made some other similar corrections / improvements along the way.