Fix list of clusters not being refreshed after creation of a cluster

Because we use a eigenclass, we cannot cache the list of clusters: the
cache will be valid during the lifetime of the eigenclass (ie, always).

What we wanted is a cache that is valid for the lifetime of a request,
so it will be up to the callers to cache this.

Note that we drop the cluster_exists? method as it's actually only used
internally and this requires a call to available_clusters. Instead, we
cache the result of available_clusters in the caller and directly check
there if the cluster exists.
Fix logic error in prepare_role_for_ha_with_haproxy

We want to call prepare_role_for_cluster_vip_networks even if dirty is
already set to true.