WIP: Developer adds expectations and promises to an action

(1) Can access these expectations in the executed block
(2) Adds class getter `expects_keys`
(3) Adds class getter `promises_keys`

There's one more piece missing: where the organiser checks (possibly through a matcher) its actions to see if they're compatible. Should we do it upon reduce? This means we won't be able to do it loading of the class, only when we actually execute the organiser.