[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.
Rather than overloading the `package_name` and `version` attributes to take either arrays or strings, what about introducing 2 new attributes - `package_names` and `versions` that expect arrays?  Then only validate that the user hasn't provided both `package_name` and `package_names`, `package_name` and `versions`, etc.