Data: move element cache to element[expando]

- avoid explicit data.discard() cleanup calls
- explicitly remove the data.events property, only when private data exists
- reduces code footprint

Fixes #11570

Signed-off-by: Rick Waldron <waldron.rick@gmail.com>