Copy PLTs for faster checking and analysis

This change should speed up the majority of runs. However if Erlang or
Elixir is significantly changed in the same version, including changing
directory then all build environment PLTs will requiring rebuilding when
next used. The best course of action in this case is to delete build
environment and Elixir PLTs, which will trigger all PLTs to be updated
on next use.

* Global (cached) PLTs only used at PLT creation
* Elixir PLT only checked on build environment PLT creation
* Erlang PLT only checked on Elixir PLT creation
* Elixir and build environment PLTs renamed
* Checking will check each module exactly once
* PLTs are merged during PLT creation, rather than at analysis
Add Hex Support