Fix ObserverTransform.getValue/setValue/discardChanges

ObserverTransform needs to conform to the contract of Observable:

-getValue/setValue do not affect the last reported value (synchronously retrieve or set the underlying value)
-discardChanges sets the last reported value to the current value

R=arv
BUG=

Review URL: https://codereview.appspot.com/41260044