Imprison free variables

If you run `make compile` now, you get a bunch of warnings like

    In haskell-indentation-delete-char:
    haskell-indentation.el:385:17:Warning: reference to free variable
        `haskell-literate'

    In haskell-indentation-indent-line:
    haskell-indentation.el:336:34:Warning: assignment to free variable
        `haskell-indent-last-position'

The changes here solve all the warnings like the above; this is a partial solution to issue #105.

Most of them were caused by using global variables declared in another file, but not `require`ing that file.  Sometimes, due to cyclic import problems, I had to `defvar` the variables where they're used (`(defvar foo)` is generally harmless, since it doesn't actually bind `foo`, or erase its docstring).

There were also a few places where buffer-local variables were created, but were not declared at the top-level.

As for actual problems, there were a couple of functions in `haskell-sort-imports.el` that used global variables to pass parameters to each other, but that's about it.