Before the recent changes these testcases relied on the fact that
peer nodes that are part of the test cluster are started one after
the other. This is now not the case in general with `emqx_cth_cluster`,
so now we need to additionally find the "longest running node" in the
cluster before running test logic.
1) Make each node have its own isolated data dir to avoid false
negatives.
2) Allow parameterizing the peer module.
3) Fix cluster RPC after a node joins the cluster.
Depending on the order that a cluster of core nodes might be stopped
and then restarted, there might be a deadlock or crash during the
configuration loading. The nodes try to check with each other which
has the latest cluster overrides and copy that info. However, in some
cases, Mnesia on node A might still think that it needs to consult
another node C that is still down, so that this node proceeds with its
boot sequence but `mnesia:wait_for_tables` in `emqx_cluster_rpc` is
stuck. Meanwhile, a node B can come up, try to copy from the sole
online node A, and fail because it's not ready yet.