Time#change throws exception with an out-of-range :usec

https://github.com/Agis-/rails/commit/98b46bf5e201307cae56ee14bf41363a539779c5
made `Time#change` to also work with other offsets but it didn't
correctly handled cases where `:usec` was out of range.

Passing a `:usec` that's out of range now throws an `ArgumentError` as it
should.

Fixes #16759.