cosmetic: fix indentation
Mark Char and Text values to distinguish them from Strings

Also get rid of the unwords and unlines functions which are confusing
and can more easily be reproduced with (join " ") and (join "\n")
Fix append on text

string literals have type string, whereas string objects are instances
of String
Properly join Text
Fit code within 80 characters
Improve error messages when elm input file or binary can't be found

There are a few problems currently with the elm server:

  1. When the elm binary is not found, a nondescript error is displayed
  2. When a file has a suffix .elm but the file is not found, the same error
     as in (1) is displayed
  3. When a non-existing file ending in .elm is requested, the error code is
     incorrect - the elm-server returns a 400 instead of a 404

The following is the error message that shows up in cases (1) and (2) above:

    Server error: elm-server-cache: getDirectoryContents: does not exist (No such file or directory)

This commit fixes the generic runtime errors (source of (1) and (2) above) by
guarding against trying to delete a non-existing directory. It also fixes the
HTTP code for non-existing .elm files by returning the general Happstack 404
page that is returned for other not-found requests.
Modify code to follow hlint suggestions
Fix the problem with `split` from issue #289
Merge pull request #290 from jsl/better_server_error_messages

Improve error messages when elm input file or binary can't be found
Check for variable shadowing

When this code was originally written, all variables were given unique
names, making it unnecessary to check for shadowing.
cosmetic: indent "properly"
cosmetic: switch to 4 spaces as indent
Only export public functions
Fix mouse and touch tracking for embedded Elm programs, #291
Drop repeats by default on arrows, directions, wasd, and isDown
Improve error messages when the module documentation structure is missing
fix #279
Disallow extended record types with no fields, resolves #280
cosmetic: nicer way to conditionally run type printer
cosmetic: make shadow check a bet more compact