Address deprecations of Kernel.<-/2 and Enum.first/1 in elixir v0.12.2

On a related note, the [`Postgrex.Connection.send/2` function](https://github.com/ericmj/postgrex/blob/master/lib/postgrex/connection.ex#L739) now conflicts with elixir's `Kernel.send/2`, leading to a build failure if postgrex is used.

I had to do a quick and dirty hack to postgrex (changing send/2 to send_msg/2) to get Ecto to work, but I think I should leave it to @ericmj to institute the proper fix. This is also the reason for the Travis CI failure:

```
* Compiling postgrex
Compiled lib/postgrex/binary_utils.ex
Compiled lib/postgrex/records.ex
Compiled lib/postgrex/types.ex
Compiled lib/postgrex/protocol.ex
== Compilation error on file lib/postgrex/connection.ex ==
could not compile dependency postgrex, mix compile failed. You can recompile this dependency with `mix deps.compile postgrex` or update it with `mix deps.update postgrex`
** (CompileError) deps/postgrex/lib/postgrex/connection.ex:1: imported Kernel.send/2 conflicts with local function
    (elixir) src/elixir_locals.erl:149: :elixir_locals."-ensure_no_function_conflict/4-lc$^0/1-0-"/3
    (elixir) src/elixir_locals.erl:147: :elixir_locals.ensure_no_function_conflict/4
    (stdlib) erl_eval.erl:569: :erl_eval.do_apply/6
    (elixir) src/elixir.erl:140: :elixir.eval_forms/4
    (elixir) src/elixir_lexical.erl:17: :elixir_lexical.run/2
```