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.
Merge pull request #1422 from ericmj/mix-manifest

Add manifests for yecc, leex and erlang compilers