refactor usage to functions
refactor to file Hawk.Help
restructuring Hawk.Help
more succinct help

I switched to the help generated by Hawk.Spec.Options, which has the
capability of generating exactly the same text as before, but I took the
opportunity to shorten the text so that most descriptions fit in one
line. I also changed "[options]" to "[option]..." to be closer to grep's
"[OPTION]...", which I assume must be standard, although I have also
seen "[OPTION ...]".
add missing doctests to the testsuite

the doctests were implemented, but they were not run automatically by
"cabal test".
silence a warning

The `lift` function was only used by the doctests, but I can't import
Control.Monad.Trans inside the $setup section because doctest ignores
the PackageImports pragma. So, I added a spurious use of `lift`.
show --help when no arguments are given

the behaviour is unchanged, but the responsability of choosing this
behaviour has been moved to `parseArgs`.
processArgs, processOptions

moving towards the nomenclature outlined in #79
processSpec

also from #79
everything is an application

...provided there is an input source with no input, needed in order to
evaluate expressions which don't need to evaluate any input.
remove unused import
skip over processOptions

I am trying to push option conversion as far deep into the program as
possible, until they are no longer needed and can be removed entirely.
only spell out the default separators once

Don't Repeat Yourself.
disable custom prelude files until later

I thought we already had a way to use a custom user prelude, but it's
because I had misunderstood the purpose of `optModuleFile`.
drop CachedPrelude

I was thinking that DetectPrelude would cause a recursive call with
either UseUserPrelude or UseCachedPrelude, but it looks like those
implementation details are going to be handled by a different structure.
towards using EvalContext instead of Config

Just like we now have a precisely-typed HawkSpec describing the
arguments to Hawk, here is a precisely-typed description of Hawk's
internal evaluation context, that is, all the parameters which we're
currently passing individually to our evaluation functions.
fix warnings
A caching library.

Still over-engineering, creating a library which I will only ever call
once :)
persisting State to disk
State version in terms of StateT version