added ability to use off(), off(obj), off(type) and off(fn) to remove groups of event contracts. includes some unit test coverage