Allow the watcher to be configured but not started #283

Here is an example: ::

  [watcher:foo]
  cmd = python -m myapp.server
  start = False

This will set up the watcher but it will not be started when the
arbiter starts.
Refactored for clarity

 - Moved the starting of a watcher to its own function
 - s/start/autostart
 - set the autostart directly in the watcher
Added tests for autostart and the arbiter level warmup delay

Note: This adds mock as a dependency in the test-requirements.