Allow Windows/Mac clients

Separate Job implementations from requests via a new
abstraction - the JobExtension, which converts job requests
(an interface{}) to a Job. Remove remaining systemd
dependencies from packages, and have all linux specific code
isolated.

To build with Mac/Windows, run:
  GOOS=darwin contrib/build
  GOOS=windows contrib/build
Use ""==string instead of len(string)