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

https://github.com/rails/rails/commit/98b46bf5e201307cae56ee14bf41363a539779c5 didn't properly 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.