Fix #4270

This also makes `squeeze` require a tuple and deprecates the version
that takes an iterator. I doubt there are many instances where the
dimensions to be squeezed aren't constant.
Alternative approach to #4270 without a staged function
Merge pull request #9271 from JuliaLang/sjk/squeeze

Fix #4270