add uniqueTag and tags for all adjuncts, use them when determining duplicates

We should get rid of the `implements Serializable` - it isn't serializable because it has a non-transient reference to ManagementContext. But we can do our xstream magic with it. I'll look at that in a separate PR.