improve iterDeps in some scenarios by 20-30% in v8, no noticeable downsides in other evergreen browsers

1. don’t enumerate keys, if no deps exist to produce keys
2. in v8 for (x in y) where y is non enumerable deopts entire function [readmore](https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#5-for-in)
3. minor: avoid deep property lookups like x[y][z] if we already have a reference to x[y]
improve debug-ability
reduce overhead from pointless iterdep calls
don’t > on undefined
isKeyPath is also called a ridiculous amount of times on with the same args.. Such cache candidate
reintroduce guid’s for SimpleHandlebarsView

This guids are incredibly cheap, and enable a recent BB optimization
intern GUID_KEY
Merge pull request #5278 from emberjs/fix-iter-deps

Fix iter deps