[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.
thing you can use `#empty?` instead of `!#any?` here.

i'd be nice to coerce candidate_version into an array no matter what, but i suspect that would involve updating all of the package provider subclasses?  in which case a FIXME here would be nice