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>
This does not work for me:

```
Error: /Stage[main]/Rabbitmq/Rabbitmq_plugin[rabbitmq_management]: Could not evaluate: undefined method `rabbitmqctl' for Puppet::Type::Rabbitmq_plugin::ProviderRabbitmqplugins:Class
```

You need to define the rabbitmqctl command in the provider, e.g.

```
initvars
commands :rabbitmqctl => 'rabbitmqctl'
```

Or if these are moved to the Puppet::Provider::Rabbitmqctl class then this is already taken care of.