Normalize actions of update! and update_token!

update! should not overwrite client properties with nil if those settings aren't passed in the options hash. This is the behavior in update_token!. This commit refactors update! to behave like update_token!.