Method update! should not overwrite client properties not passed in options hash

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