Document events

This pull request adds an events plugin and template that allows us to document events. I am opening this for discussion. If people are happy with this approach, I'll continue to document events in other classes.