Allow concat to take non-array second parameters

Also improve and extend concat tests to lock down functionality
(MODULES-603) Add defaults arguments to ensure_packages()

Without this patch one can not specify package resource specific
parameters. All the ensure_packages() function does it makes sure
the named packages are installed. This patch allows one to pass
default as a second argument and allow greater flexibility on
packages installations.

Use case like the following are now possible :
  * ensure_packages(['r10k', 'serverspec'], {'provider' => 'gem'})
  * ensure_packages(['ntp'], {'require' => 'Exec[foobar]'})
Adjust the regular expression for facts.

Previously this was incorrectly handling facts that were of the form
foo=1+1=2 due to the ='s in the actual fact contents.  Fix this and
add tests to try and prevent regressions.
Merge pull request #242 from apenney/facts_d

Adjust the regular expression for facts.
Merge pull request #238 from Spredzy/add_default_ensure_packages

(MODULES-603) Add defaults arguments to ensure_packages()
Merge pull request #222 from mfoo/fix/master/concat-primitives

Allow concat to take non-array second parameters