ImproveTopic support for multiple subscriptions

Also, is there any reason `topic.unsubscribe` doesn't call `this.removeAllListeners("message");`