Add type/provider pairs for federation

This allows us to manage federation upstreams, sets of federation
upstreams and policies (which are used to setup federation and also
other things inside rabbitmq).

TODO: No test cases!

Conflicts:
	lib/puppet/provider/rabbitmq_exchange/rabbitmqadmin.rb
FIx dependency ordering
Fix HOME to be the right place for where we put the rabbitmqadmin credentials
Spaces are explicitly allowed
Remove all type checking as may be an array
fixes federation upstream providers flush and destroy method
updates docs for federation upstream types
fixes upstreamset providers flush and destroy method
fixes flush and destroy bug in parameter and policy types
makes error message clearer
adds regex for federation_upstream uri
changes policy property name from data to definition
uses title pattern for parameters, adds validation, disables management of federation components via parameter
adds unit tests and tightens validation
Merge branch 'docs_for_federation' into types_for_federation
updates docs
Merge branch 'master' into types_for_federation