When client power off directly, the socket is broken and server may
still push messages, which just occurred TCP re-transmission at that
time, instead of raising an error immediately. This delayed the will
message.
broker/Topic: String Topics replaced by Topic class
broker/Topic#parseTopic: access set to private
broker/SubscriptionsStoreTest: topic tests moved to own class
broker/TopicTest: containsExactly used
broker/TopicTest: TopicAssert class added
broker/TopicTest$TopicAssert#containsToken: method added
broker/TopicTest$TopicAssert#matches: method added