Refactor the client API to remove core dependencies

* Move Job implementations to explicit classes
* Make daemon pluggable
* Other cleanup
* Add 'gear purge'
* Add -all to gear list-units (closes #173)
Merge pull request #178 from smarterclayton/refactor_client_api

Merged by openshift-bot