PUP-2163 Smite yumrepo and inifile with the mighty sword of refactoring

This PR addresses the following issues:

  * PUP-2150 yumrepo removable parameters cannot be set to 'absent' in Puppet 3.5.0.
  * PUP-2162 yumrepo gpgkey and baseurl with multiple URLs broken in 3.5.0
  * PUP-2178 yumrepo 'descr' property doesn't map to the 'name' INI property
  * PUP-2179 Ensuring absent on a yumrepo removes all repos in the same file
  * PUP-2181 Yumrepo string properties cannot be set as absent in Puppet 3.5.0.