Split executive into two parts

I think it's structurally cleaner, and leaves both parts looking less complex in isolation than they were together. Ideally this will make it easier to run event processing and notification generation on different machines.

Fixes #247.