Merge branch 'dev' into json
Begin process of allowing "deriving" on type aliases.
Add basics of "deriving" for ADTs and type aliases. Only parse it for type aliases at the moment.
Merge branch 'dev' into deriving
Improve some parser code by adding type annotations, removing unused dependencies, and using prefixed imports
Begin switch from current FFI syntax to "port" syntax
Add basics of properly handling ports
Migrate tests to test-framework and make them more specific.

Use test-framework as it's more widely used/has better support for
HUnit/QuickCheck.

Make test cases test the `compile` function explicitly instead of the
elm executable as that's all they're actually intended to test.
Re-org tests
Setup QuickCheck and add Literal Parse/Print test

Currently fails the prop tests: https://github.com/evancz/Elm/issues/420

Also ignore emacs backup files.
Add parse/print tests for Patterns.
Pattern pretty printer prints syntactically correct code.

Include auto-generated test case that was previously broken.
Make parse/print test more stringent, tweak Float gen.
Style tweaks and use cross-platform file name construction.
Merge pull request #421 from maxsnew/test

Test Re-org and Start Property Testing
Refactor Build.File using monad transformers
Recompile modules when their dependencies have changed.
Merge branch 'master' into dev
Merge branch 'js-integration' into dev
Add JS as a possible Derivation, correct binary serialization, add error when serialization goes wrong.