ENH: Event Manager rework

The event manager is a way to allow functions to be called when certain datetime conditions are present.
This is to eliminate the need got `get_datetime()` checks in the `handle_data` function.
This piggybacks off the work and usage research of @humdings.

Opening this pr now to get some eyes on it before continuing with tests.
What is the interval that this should evaluate to True over?
I'm not sure how this is handled in Q live trading, but if the first bar is called at 9:31, the market has been open for a minute already, should that minute be included? If so, it might make more sense to use `>=` here instead.