Optimize d3.map, d3.set and selection.data.

Maps and sets now use `Object.create(null)`, meaning that we only need to escape the special `__proto__` property. Any other key is safe to set or get.