Add conditional execution to reactor lifecycle events + fix rspec matchers

[LIFECYCLE EVENTS]
If conditional now executes when job finally executes. eg: publishes :reminder_email, at: :run_at, if: -> { not_already_reminded }

[MATCHERS]
Matchers will work even if other events are firing
You can also fire an event multiple times in the same test

[DOCS]
Updated lifecycle documentation
(this is winfred on joel's machine) actually _id and _type more closely model what is being passed to the sidekiq worker's perform method, since by the point that sidekiq is pulling the job out of redis the actor has already been decomposed. So in this sense it doesn't really matter how it looks in the spec.