Use Mix.shell for IO
Rename PLTs to stop rebuilds in pathological cases

Different elixir versions generate different erlang code, so changing
elixir versions back and for will would require constant rebuilds.

The PLT version must match the version of dialyzer so include the OTP
version in all PLTs names.