Fixed some defects in [13395]: added support for image maps. Refs #10998.

It seems that PlantUML only supports using stdin and stdout together, and there doesn't seem to be a way to generate the image map content when outputting to stdout. The documentation on image maps from PlantUML is almost non-existent, so it is hard to be sure. Therefore, we output the markup to a file, and pass the filepath of the markup file to PlantUML, outputting the png and cmapx to files in the same directory.

Thanks to Erwin Rademakers for coming up with this solution, and testing r13395.

Sep 18, 2013:

TagsPlugin: Provider map construction in class init should make it thread-safe.

This would have created a circular load depencency without transformingsplit_into_tags into a function, what it is indeed == a good move anyway.
More small changes are bundled, mostly for code cleaning.

Handling of tag collections in Counter objects is more efficient,
because we skip creation of associated resources and permission checks.
We use a feature-stripped, more PEP8-conform version of the original recipe.

Other Trac plugins, that ask TagsPlugin for existing tags frequency or need
just all tags, should avoid all methods beside TagSystem.get_all_tags too.