Shout outs

Added support for shoutouts, including responses to shoutouts
Let's use Async-- This could be a pattern but it is too brittle:
1. Extending the algo with other async calls requires touching resolve and ensuring all other end conditions are maintained.
2. Error handling is explicit and requires bookkeeping.
3. Testing must be exhaustive to ensure all resolve paths are scucessful, not just the fast call always finishing first.
4. There is bookeeping code sprinkled all over to support this pattern.