Correctly track expression dependencies

Some types of expressions have observation dependencies that are dynamic. For example: "a[b].c".

This patch correctly detects these cases and resets observation when a change occurs.

R=arv
BUG=

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