Refactor event registration

- Use ActivityVisibleAttribute to indicate an event is visible for activities
- Remove IDomainEvent and EventCategory because they were added to indicate the visibility for activities, but we have a more straightforward ActivityVisibleAttribute now