Fix duplicate keys

Fixes #997. The enter, update and exit selections are now initialized as fixed-length arrays rather than dynamically populated with nulls. If duplicate keys are used for either data or selected elements, only the first datum or element is considered and subsequent data or elements are ignored.