Make update_thread_labels more performant.

The updating-labels-on-a-thread situation still needs more attention, but in
the meantime, at least make this faster. Doing thread.folders = {...} proves to
be expensive, because sqlalchemy does thread.folders.clear() under the hood,
so we remove all the associated tags and so on. But then in the common case we
just reconstruct the same set of folders, and it's a whole lotta SQL for
nothing. Something to keep in mind when working with the ORM.
Distinguish between canonical and reserved tag names.

Canonical tags are ones that always exist in the Inbox API. Reserved tags
are ones that we prevent users from creating, because we might use them in the
future or because of confusion potential. Don't actually create tag objects for
the latter category.

Fixes T166.