Added support for object typeahead datasource handling and allowing duplicates

This PR enables support for typeahead datasources that return object data instead of just strings. Each attribute on the object is added as a data-* attribute on the tag with a configurable prefix (which defaults to "data-tm-"). Additionally, this PR allows for selecting duplicate items for tagging from the typeahead source.