pass message type to DeclareExchange in IPublishExchangeDeclareStrategy

Passes the message type to the IPublishExchangeDeclareStrategy so that
the type could be inspected to provide custom exchange bindings based on
the type of message. Mainly to support subscribe of IAnimal but
publishing Cat/Dog (the reverse of the polymorphic message example).