Improve error messages when elm input file or binary can't be found

When the elm binary can't be found or the requested file ends in .elm but the file does not exist the server returns the following unhelpful message:

    Server error: elm-server-cache: getDirectoryContents: does not exist (No such file or directory)

This PR improves the error messages in the above two cases, and also returns a correct 404 response when a file ending in .elm is unable to be located in the filesystem. 

Finally, there are a couple of minor tweaks based on hlint's suggestions for the `Server.hs` file.