Made TagObject recycle objects if the tag is the same.

This adds an object cache to TagObject so that the same TagObject
instance is used whenever the tag itself (e.g. the POS tag "Pd") is the
same. This change should be safe (and sensible) but it is not entirely
clear if all existing code treats TagObjects as immutable (as they
should), and the TagObject implementation itself does not enforce this
as it stands.
Added layout link to semantic tags controller.
Updated dependencies.