Yes, CLDR has what you need.
It doesn't. It doesn't have timezone names, nor the capacity to collapse historically accrued timezones (with near-zero interest to modern users) in to reduced sets for display.
That's what we use on Android to localize time zone names, starting from Olson ids. All that code is open source in AOSP, and icu4c does most of the work.
Hrrm. Seems I was looking at the wrong bit of code. OK, ICU does seem to have the goods here! (1) establishing a more meaningful ("meta") namespace for modern use that is separate to the Olson IDs; (2) a translated library of human-meaningful timezone names (these are in the "source/data/zone" directory, visible online at http://www.opensource.apple.com/source/ICU/ICU-461.12/icuSources/data/zone/ probably amongst other places). Anyway, it appears that we have a solution. Hooray. (Though does anyone else find it interesting that the purview of fixing timezone data to something human-accessible falls to a project like this: http://en.wikipedia.org/wiki/International_Components_for_Unicode ?) Onwards and thanks for the educational discussion, Walter