bunch of refactoring, bug fixes, added capture-phase handling for 'blur', 'focus', and 'change', wired 'focus' and 'blur' up to 'start-hover' and 'end-hover' respectively