Avoid accessing observable value twice during setup of CompoundObserver

This was affecting polymer startup. The basic problem is that Observer.open must read the underlying value, and was called during addObserver, only shortly after to have check_ call discardChanges() -- which read the underlying value again.

The solution is to delay opening the Observable until the CompoundObserver is opened

R=arv
BUG=

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