Prevent duplicate TaggedItem elements via add_tags function

Addresses two issues that results in duplicate tags appearing:

* add_tags() no longer creates a taggeditem if it already exists.
* the autocomplete query for creating new tags does a join on taggeditem, which can result in duplicates if a tag is tagged for two different ideas.  distinct() fixes this