Introduce TagSet domain object

Implements #to_h and #fetch

TagSet serialises to a hash at which point it sorts tag values for consistency.
This is essential for efficiently (ish) searching Postgres HStore.