bug(caPatchService): fix invalid passing of listener parameter

A refactor of the prototype patching to use a helper
function invalidated the listener parameter when passed.
Tying the parameter to the object before calling the helper
gave the parameter the right scope. Additionally, it was
found that in Firefox, Element, Node, and EventTarget do not
have the name property. This was causing a problem with the
remove function that keyed the original properties to the
prototypes by name. Another parameter was added to
replace the name property.

Closes #17