Split elixir expansion for translation to erlang ast in the compiler

Prior to this pull request, Elixir compiler had one pass that expanded the AST and translated it to Erlang Abstract Format at once. This pull request breaks it in two steps and also simplifies the compiler front-end by moving all main functions to the `elixir` module.