RFC 6121 compliant message routing

Where a message fails to be routed to a full jid, we should only route to the
bare jid if the type is "chat"; otherwise we should bounce if it's not an
error.