(PUP-789) Break yumrepo into a type/provider.

This work strips out all of the provider code from the type, and
creates a new ruby provider for yumrepo.

While this code still uses inifile it's been rewritten to take advantage
of the modernization of Puppet.  It's now a little easier to understand
and test.

This covers: #8758, #9293, #22304 (projects.puppetlabs.com)
(maint) Remove the noop check here, we don't allow flush to be called when
noop is set.