Evaluate for...in loops that may need hasOwnProperty calls

Related to #684.

In a situation where Object.prototype has been extended, we may see unexpected or undesirable behavior in places where Knockout uses a `for...in` loop, but does not use `hasOwnProperty`.

Besides, the `event` binding issue described in #684, the `style`, `css`, and `attr` bindings have similar loops.  There are a few other areas in KO that may see similar issues.

We should evaluate if each of these need `hasOwnProperty` (probably) and if we want to create a utility function to safely iterate through properties (could avoid the closure in `event` binding).