Fix simple reference error in !IE
Map API has a forEach, use ES6 Map where available
Refactor touch

- move all scrolltype information into touch
- reduce thrash on attribute changes by maintainting listeners when possible