refactor(patchServices): add patchOnePrototype method() to allow code reuse

Replaces redundant code in patching the Element, Node, and EventTarget
prototypes separately with calls to one method.
refactor(patchServices): add collectPrototypeProperties() method to collect original properties

Replaces redundant code in collecting the unpatched
properties of Element, Node, and EventTarget.
refactor(patchServices): add unPatchOnePrototype() method to allow code reuse

Replaces redundant code in unpatching the Element, Node
and EventTarget protototypes. Now one method taking a
parameter performs the same unpatching behavior on each
of the prototypes.