Add supported codename, default codename

This commit introduces a helper method to allow setting supported
"LSB" codenames with a default/fallback codename.

It may be desirable to better control the distribution codename used
on debian-ish platforms when consuming Package Cloud repositories. For
example, a repository might release packages for "trusty" only, but
those packages might install and work just fine on "lucid" or
"precise."

This is backwards compatible. If the `supported_codenames` or
`default_codenames` attributes are not specified on a resource, it
behaves as before, using `node['lsb']['codename']`'s value.

Changes:

* Add `supported_codenames` and `default_codename` attributes to the
  `packagecloud_repo` resource
* Add `distro_codename` to `packagecloud_repo` provider to delegate
  selection of the appropriate codename
* Create new recipe and serverspec test for testing this feature
* Create a test suite in `.kitchen.yml` for testing this (non-RHEL)
* Update the README describing how to use this for deb repositories
This conditional is a little awkward, and I thought it would be clearer to explain why in the PR instead of the commit.

The predicate method is used so we can determine if the user has specified a particular list of distributions that the repository supports, with a default for fallback. This dispatches to the `distro_codename` method if we need a lookup against the supported codenames from the resource.

Using supported codenames requires having a default to fallback, but using a default doesn't require `supported_codenames`. If we're not using `supported_codenames`, then we default to `default_codename`, otherwise final fallback i to the `node['lsb']['codename']` attribute.