Region: added per region event handling support

This patch allows for each region to listen for a set of events that
either registers the entity or cancels the event. This is useful for
canceling events that effect the behavior of other plugins.