Implement Pkg.update hook

If your package contains a `deps/update.jl` file, it will now be executed
on Pkg.update().

This essentially duplicates the code from `build!`. I considered factoring it out, but since the majority of these functions are strings that have to be different between the two I decided it wasn't worth it. 

@StefanKarpinski 

Fixes #4201