remove unused code
no need to call lift after liftIO

the point of liftIO is that it replaces (lift . lift . lift), or
whatever the number of calls to lift you need to reach IO.
don't create folders during parsing

we shouldn't put actions inside the parser, otherwise calling
processSpec with a HawkSpec will no longer be equivalent to calling hawk
from the command-line and testing will become harder.
remove stray comment
initialize the config dir

this was previously done by parseArgs, but not always.
fix `compile` to work with relative paths
Merge branch 'issue-87' into develop