Add initial support for Slack integration.

Unit tests currently broken due to changes, need to fix and add slack tests.
Merge branch 'feature-slack' into feature-all