Re-work "version type" system to support Fedora 21+

As if the special characters introduced in `f18` weren't enough, Fedora has decided to stop using codenames to identify releases. Currently, they put "Twenty One" in the place where the codename would be for `f21`. Unfortunately, rosdep detects that the key is `twenty`, which is both misleading and will probably cause a collision with `f22`, assuming they continue to not use codenames.

Since rosdep keys exist for `f20` and before, simply switching the key from `os_codename` to `os_version` will break things. Instead, I re-worked the "version type" system to use a function to determine the OS' key.

Fedora should probably have always been keyed by `os_version`. It has always been identified more by the version than the name. However, I can't condemn the early decision to use the codename, as this is how it is done in Ubuntu.

This PR could easily break things, so I'm calling for tests in Ubuntu and OSX to ensure I didn't cause a regression.

I would really appreciate it if we could get this merged AND RELEASED long before the `f21` official release, which is currently scheduled for Dec. 2, 2014. I'd like to start testing packages on `f21` soon, and this blocks said testing.

If anyone has a better idea of how to handle this codename mess in Fedora, I'm all ears.

Thanks much,

--scott

Specifically tagging @mattrichard @tfoote @jpgr87 @wjwwood @NikolausDemmel