added a copy func to EventHook
Component now has a default handle_bubble_down which broke a test
renamed add_bubble_down and changed the mixin func to make copies of
_init_hooks and listeners. So mixing a child will properly inherit from
parent class but not change parent