For contact threads, thread.name opened a sneaky transaction, which would
sometimes cause a deadlock.
This commit moves the name method to the contact manager and offers an explicit
transaction flavor. There is still a sneaky transaction flavor used in some
places where it's deemed dangerous to plumb through a transaction without
further scrutiny.