tag cloud ported - except for putting into a template