Policyfile fixes

This pull request fixes a handful of issues I encountered implementing cookbook uploading for the Policyfile feature of ChefDK.

The changes with the largest potential impact are:
* Removed an unused argument to the constructor in `CookbookUploader#initialize`. This class could be used by third parties, but I think it's reasonable to remove for Chef 12.0.
* Modified how the `FileVendor` factory gets configured for a specific implementation class. There's only two implementations so it makes sense to make the configuration interface more specific to those implementations. More explanation is in the individual commit message.
* HTTP requests that go through the `JSONInput` middleware (which includes Chef::REST) are not JSON-encoded if they manually set a content-type other than JSON. This would only be a bug-compatibility problem, where code that shouldn't have worked before, did, by accident.

This PR addresses a few not-very-related issues, but the commits are pretty atomic.

/cc @opscode/client-engineers 
Maybe we can change the title here to `Internal API Changes` and collect other internal API changes that we will make before 12 release here as well?