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!.
Use .has_key? to check for passed options
Merge pull request #21 from jayred/master

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