[10-stable] Multipackge support

Allow the `package` provider to take an array of packages to handle in one
transaction.

This solves two large problems:
* There are times when you cannot install two packages in sequence, like when a
  binary is moving between two packages - they *must* be done in the same
  transaction.
* When using Chef to install the vast majority of your base system, it
  can make imaging take a very, very long time because executing yum or apt once
  for every single package is painfully slow.

This solves both. The scaffolding is all there in the Package HWRP, plus the
underlying implementation for both apt and yum, the two I have access to test.

This is the 10-stable version. 11- and 12- versions coming, but I'd like to do the the majority of code review here since it's much, much easier for me to test on 10, I'll forward port that stuff to 11, then do any other code-review bits there.
I think that is more readable than if they were just comma-joined string segments.  But if there is a long list in there, its still going to be hard to grok for debugging.  Do you think it is useful to turn it into something like `upgrade package "foo": nil -> "6.8", "bar": "1.3" -> "1.3"`?