Initial implementation of spire communication mechanism.

Uses std::function and std::bind instead of a messaging system. Reduces
code complexity.