Full review (do not merge)

Nods re: `modules/puppet_proxy/api_request.rb`, that's a good example of what I was thinking. See https://github.com/theforeman/smart-proxy/pull/205/files for an example of plugin disabling (I need to get a bug fix in that PR in smart-proxy though).