Make rabbitmqctl provider to wait for rabbitmq cluster

W/o this fix, then RabbitMQ put in a cluster and managed
by Pacemaker, rabbitmqctl could fail its requests due
to cluster is not ready yet.

The solution is:
1) Introduce a base Rabbitmq_common provider class with wait_online method
and a retry decorator for rabbitmqctl commands to ensure they will retry
instead of fail then cluster is not ready.
3) Derive rabbitmqctl provider classes from the former one to make
them able to wait for RabbitMQ reasy as well.
4) Update rspecs

Co-authors: Dmitry Ilyin <dilyin@mirantis.com>
Closes-bug: #MODULES-1452

Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
Why do we have both of these methods? It seems like run_with_retries accomplishes the same thing as wait_for_online, just with a configurable command to run in the timeout. Could you condense this and just use run_with_retries without waiting first?