accept more Integer types for dims::Int... arguments

[As discussed on the mailing list](https://groups.google.com/d/msg/julia-users/HvbCM0J-CjM/Rut_Syhlc8kJ), there's no real reason that functions like `rand(dims::Int...)` can't accept other `Integer` types.  This patch genericizes a number of functions in `Base` that took `Int...` arguments to accept `Integer...`.

There shouldn't be a performance penalty, since I made sure `convert(Dims, dims::Dims)` returns `dims`, by adding a new diagonal tuple method to `convert`.

Functions accepting an explicit `(Int...)` (`== Dims`) tuple still require `Int`; it was too much of a pain to change these, and they are generally lower-level functions than the varargs functions.