Add manifest files to yecc and leex compilers

Makes sure that the correct generated files are deleted and cleaned
even when the source files are moved or renamed.
Add manifest files to erlang compiler

Makes sure that the correct generated files are deleted and
cleaned even when the source files are moved or renamed.
Check .compile.erlang mtime when compiling elixir

Consider erlang files when checking if elixir files needs to be
recompiled.
Use all compilers manifests when cleaning

A compiler can expose a `manifest/0` function providing the filename of
its manifest filename.
A manifest file should contain a list of files that was generated by the
compiler. They should be absolute paths relative to the project root and
be separated by newlines.
Mix.Tasks.Help.run([]) outputs information about current default task
Add expansion callsite to the end of the stacktrace, closes #1426
Merge pull request #1425 from tonini/mix-help-default-task-description

Mix.Tasks.Help.run([]) outputs information about current default task
Merge pull request #1422 from ericmj/mix-manifest

Add manifests for yecc, leex and erlang compilers
Created 1st version of GenFsm
Clean up GenFSM docs
Update CHANGELOG