replaced the last 'removeEventListener' optimization with a better one (closes #491)

Previously, I overlooked the side-effect of "splice" (always allocates two new objects).