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
As stated above, using `supported_codenames` requires having a default to fallback to.

It's really hard to determine what the `default_codename` would be if it's not specified, since it's going to be different for every debianish version, and the conditional logic was hairy enough already. I think this is a fair and sensible default behavior.