Make provider to wait for rabbitmq cluster

W/o this fix, then RabbitMQ put in a cluster and managed
by Pacemaker, rabbitmqctl/rabbitmqadmin can fail their
requests due to cluster is not ready yet.

The solution is to introduce a module with a common function wait_for_rabbitmq. 
And include it as a class methods for
providers to ensure rabbitmqctl or rabbitmq_admin call will
retry instead of fail then cluster is not ready.

Co-authors: Dmitry Ilyin <dilyin@mirantis.com>
Closes-bug: #MODULES-1452

Signed-off-by: Bogdan Dobrelya <bdobrelia@mirantis.com>
If you make rabbitmq_common a provider class like https://github.com/puppetlabs/puppetlabs-vcsrepo/blob/master/lib/puppet/provider/vcsrepo.rb#L6 then you can have the different providers declare that as a parent like https://github.com/puppetlabs/puppetlabs-vcsrepo/blob/master/lib/puppet/provider/vcsrepo/git.rb#L3 and not have to `include` and `extend`. I think that is a more common pattern.