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 -n
Use ""==string instead of len(string)