(PUP-1960) Change API of Resource and Class types for undef/array

This changes the API of Resource and Class types so that they:
* return a single type or undef when there is a single key
* return an array of types or empty array when there are multiple keys,
  or when a single key is an array.
  
The arguments are still flattened and compacted.

For Resource, the ability to also pass the type in the array was
removed. i.e. Resource[File, f1, f2] or Resource[File, [f1, f2]] are
allowed but not Resource[[File, f1, f2]].
Merge pull request #2514 from hlindberg/pup-1960_change-api-resource-type

(PUP-1960) Change API of Resource and Class types for undef/array
(maint) Update external_ca_support/fixtures with 2048 bit keys

A recent security update is causing httpd package on RHEL6.5 to bring in
a more recent openssl (1.0.1e-16.el6_5.4) which was failing to work with
the 512bit RSA keys in our test fixtures.

This commit updates the certchain.sh to produce 2048bit RSA keys.  This
script was then run to produce a new set of fixture artifacts, and the
cert/keys for the fixtures were then updated from its output.
Merge branch 'maint/stable/external-ca-acceptance-failing-with-newer-openssl' into stable

* maint/stable/external-ca-acceptance-failing-with-newer-openssl:
  (maint) Update external_ca_support/fixtures with 2048 bit keys
Merge branch 'stable'

* stable:
  (maint) Update external_ca_support/fixtures with 2048 bit keys
Merge branch 'master' of https://github.com/puppetlabs/puppet