Refactor elixir_quote to work on Elixir expressions

This allows us to re-use the code from Macro.escape,
reducing the duplication, and gives us more visibility
into the transformation process.