Cleanup data values on element removal

When an element is removed from the DOM via `remove()` or `empty()`, also
remove all associated data values that were previously set using `data()`.

Fixes #381
Merge branch 'data-cleanup'