WatchAll: use Object.prototype.hasOwnProperty instead of obj.hasOwnProperty in
order to avoid serious issues when those methods are removed, or when an
object is created with Object.create(null)
Wade: add guard of "$val" to prevent infinite loop.
Merge pull request #72 from phaikawl/master

WatchAll: use Object.prototype.hasOwnProperty.call() instead of obj.hasOwnProperty