Check cluster consistency before joining a cluster

Before this change, the node would join the cluster and the consistency
would be only checked during application restart (rabbitmqctl
start_app). This could lead to crash during the join due to Erlang,
Mnesia or RabbitMQ incompatibilities.

Now, the join_cluster command reports the problem. Here's an example:
    $ rabbitmqctl join_cluster <remote_node>

    Clustering node <local_node> with <remote_node> ...
    Error: {inconsistent_cluster,
            "OTP version mismatch: local node is R16B03-1, remote node 17.3"}
Rename this to indicate what it does, not the current circumstances in which it is called.
Merge bug 26081
stable to default