improve performance for template repeat over model objects with shared prototype

This fixes the case presented in: https://github.com/Polymer/polymer-dev/issues/101

What is happening there is we have a bunch of paths inside a `<template repeat>` such as `{{model.path}}`. With polymer-expressions, the model for each repeated item has the same `__proto__`, which is the containing element, and we don't want every property set there to ping every item in the list. This seems to be the simplest thing that prevents the bug.

(Note: if the property is deleted from rootObj, we should get a change record from rootObj which causes us to iterate all objects again, and at that point, will observe the prototype because it is no longer an ownProperty of rootObj. That won't happen for polymer-expression scopes, but could happen in general.)

good call, I should at least have a test for that & mention it the comment. It should work because whenever it gets a change record (in callback below), it will rescan everything.