Refactor cluster-init and use explicit member addition to build cluster
Refactor cluster-init and use explicit member addition to build cluster

The old method of starting etcd on hv0, building a new cluster on hv1
and hv2, wiping and joining hv0 to the new cluster, and repopulating the
data was leading to inconsistent and often failing cluster
initialization in some environments. Instead, simply update the hv0 node
and then join hv1 and hv2 to it. This leads to more consistent results.

In the process, code has been refactored into functions grouping related
actions for clarity. Logging has also been improved to cover start and
end of functions and major commands, as well as include a stack of
function:lineno for better identification.

mistifyio/mistify-os,mistifyio/mistify-os,trisk/mistify-os,trisk/mistify-os,mistifyio/mistify-os,trisk/mistify-os