feat: add onZoneCreated hook
fix: throw if a zone does not define an onError hook
feat: add decorator syntax
feat: refactor and test counting zone
fix: improve patching browsers with EventTarget