Merge pull request #116 from ngunn/dev

Fix Elm.cabal missing elm-runtime.js
Switch to matrix representation of transformations.
Merge branch 'dev' of https://github.com/evancz/Elm into dev
Don't expose Matrix to people yet
Add a matrix library and switch collage over to use it.
Add the Prelude library with type annotations and docs.
Fill in some of Prelude.js
Save characters on imports.
Move the compiler down a directory, mostly.
Finish moving the compiler down a directory.
Get everything compiling again.
Change such that `import` imports all by default. Too annoying the other way. Write a linter for that.

Also make imports a bit more concise in generated JS.
Load json representation of types with Template Haskell, so library files are the base truth of type information.

Make minor fixes in libraries, such as adding the Char labrary and fixing the types in the Dict library.
Import qualified name by default.
Add split to List module and rename intercalate to join.
Fix `join` and fix `show`
Get elm-doc to extract comments!
- Break common functions into Utils files.
- Add support for no-graphics mode (e.g. for use with node.js)
- Change order of arguments for matrix transformms
- Begin getting Collage.js in order.
More work getting Collage in shape.
Add support for Custom elements in the renderer. Move the CSS transform setters into Utils so they can be used by both elements and forms.