Big rewrite of api

* StageStarter is now the Main class

* Stages no longer have access to RemotePipeline.
  To discard a document, call LocalDocument#discard
  To get document attachments, call LocalDocument#getFile et.al.

* Now uses Guava Service. This simplifies the logic for shutting
  down threads.
All Exceptions thrown by stages are now caught without restarting JVM
Removed ProcessException and updated all stages
Fixed a logging issue in api

wiremock had log4j as a dependency, which confused
hibernate-validator.
Fixup. Removed unnecessary clone in ProcessStageRunner
Removed duplicate LocalDocumentTest
Fixup. Remove inner class UnsetDocumentFileRepository from LocalDocument
Fixup. Added a clarifying comment in a test.