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.

v3:
move mock to autotest.client.shared.mock, remove patch for resource,
signal, and fcnlt

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