Add unittests for AsyncJob.  These tests use the stdlib unittest.mock
module backported from Python 3.3.

v2:
Unit tested on Windows, had to patch out resource, signal, and fcntl

Add patch for subprocess.Popen since Windows doesn't support the
preexec_fn parameter that is used in the BgJob __init__

Replace Thread MagicMock with a class since the MagicMock wasn't working
on Windows for some reason.

Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>