Move all cache and build files to dirs specified by flags.

Add new representation of elm source file paths (SrcFile) that keeps
track of the top of the module hierarchy.

Also add a function to parse the components of a Module name from a file
directly.

Fixes https://github.com/elm-lang/Elm/issues/618.
Where does the file go if I do `elm -m ../Foo.elm`?