Switch to semantic versioning

Now required by Elixir
Update dependdencies
Update depreciated call to __FILE__

Now __ENV__.file
Handle depreciated Enum.first/1

Has been moved to the List module