Split delete!(h::Dict,key) into pop!(), delete!()

* Add documentation for pop!(collection, key[, default])
* Deprecate Set add! in favor of push!, for symmetry with pop!
* Also: add push!(h::Dict, k, v) for symmetry with pop!(h::Dict)
Update Dict pop!/delete! changes to latest Julia, remove warnings
Fixed add/add! deprecations.
Merge pull request #3439 from kmsquire/dict_pop

RFC: Split delete!(h::Dict,key) into pop!(), delete!() (#3405)