command: Remove metaclass magic

This commit removes all the metaclass magic in honcho.command in favour
of a set of simple nested argparse parsers.
command,environ: Move env parsing into own module
command: Make Procfile and env loading respect app_root
command: Change default log format to a more helpful one
test: Treat each procfile parse test separately
process: Inject the Printer ctor into ProcessManager
Move tests into honcho module
process: Inject the Process ctor into ProcessManager
printer: Inject environment

This also removes the need for the mock library.
process: Add first few unit tests for ProcessManager
Update .travis.yml to reflect new test location
coverage: Adjust coverage config for new test location
Move queue import handling to honcho.compat
coverage: update HTML report directory name

This appears to have changed from 'htmlcov' to 'cover'.
process: Read stdout from "quiet" processes

It seems that simply not reading data from the STDOUT of quiet processes
could lead to all kinds of buffering problems. All we really need to
achieve is silent output, so this commit moves the conditional inwards
-- output is read, just not relayed by Honcho.
process: Allow suppression of the SIGKILL fallback

In order to be able to test the behaviour of ProcessManager#terminate(),
I need to be able to call #terminate() from a non-main thread. Calls to
signal.signal(...) are invalid on a non-main thread, so this commit adds
a kwarg to #terminate() to allow me to suppress this behaviour.
process: Cover more of ProcessManager's behaviour
environ: Fix broken tests

The "yield <callable> <args...>" pattern doesn't work with this version
of nose.
process: Inject Popen into Process, don't subclass

This makes the Process class substantially easier to test, and means we
can more fluidly refactor it.

This commit also adds a full set of unit tests for Process.
process: Consolidate to a single printer

This commit simplifies the process by which Honcho relays process output
to another place. Previously, every Process object had its own printer
instance, which knew what colour and name to print for the process. Now,
there is just one Printer instance, which needs to know only the width
of the prefix column, and each line printed by a process is relayed to
the printer with colour and name information.