Updated the project to support Elixir 0.12.0 and up. Some factoring and updated the README