add CustomPath provider; add library paths from all providers

This addresses JuliaLang/Julia#3761 by introducing a provider which searches for binaries in a custom path. 

This useful, for example, for Gurobi, which is a commercial library which is typically installed in a custom directory, although all gurobi users have the ``GUROBI_HOME`` variable defined, so one could do:
```
provides(Binaries, joinpath(ENV["GUROBI_HOME"],"lib"), libgurobi)
```

This also lets users tweak ``build.jl`` to drop in their own versions of libraries which wont't be overwritten by ``BinDeps``. We might want to consider giving this path priority over the default path, but I haven't implemented that.

I had to change the logic in the ``load_dependencies`` macro so that it adds the paths from the different providers. I think this was broken before, because it only added the default ``deps/usr/lib`` path and was inconsistent with ``_find_library``. 

I expect we'll need some iterations before the code is merged, but hopefully this will push things in the right direction.