WIP es6 compliant contains

- [ ] make enumerable stuff work correctly (ideally without lots of duplication)
- [ ] get review on the es6 contains poly