feat(web components): Support custom events for element property binding

Closes #1449
OOC, why add to each module?