Fix Time#change when used with :usec or :nsec options together with offset times

This is a follow-up of #16758 and the branch is based on it.

Fixes #16759.
I think we should fix the bug with `:usec` not raising an error first and not mix a new feature with a bug fix. Also the bug fix may be backported to 4-0-stable and 4-1-stable but not the `:nsec` feature.