Fix crash in start when all processes are quiet

Specifying all processes in a Procfile as --quiet, caused `max` to be
called with no arguments, which crashes.
Merge branch 'mark-burnett-quiet-all-procs'
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
Implement `honcho run PROCESS`

This makes `honcho run` primarily about running a Procfile-specified
process in the foreground. Previously it was about running an arbitrary
shell command, which still works, but now as the fall-through case if a
single arg to `honcho run` doesn't match a Procfile process.

The reason this change is desirable is to be able to use debugging tools
such as pdb along with Procfile process aliases. Furthermore, this
brings honcho back into harmony with Foreman's behavior, but in a way
that is documented more sensibly (Foreman presents the process case as
the exception rather than the command case).

This change is backwards-compatible except for edge cases where a shell
command name was used as a Procfile process name. So, for example, if
`mv` was a process name, then calling `honcho run mv` would now invoke
the Procfile process rather than the shell command. Since we also check
for the number of arguments when trying to interpret as a process name,
this edge case is especially edgy. I think this can safely be considered
a backwards-compatible change for all practical purposes.