Add ability to listen for topic changes

Adapters must specifically implement receiving TopicMessage when they handle a
changing topic.

Closes #349