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