Custom groups

As discussed in the forum thread, this adds the ability to create and manage custom groups and the dwarves who love them.

Right click a dwarf name to add a new group, delete an existing one, or add/remove from a group. Works with multiple selections.

Group names are global, but dwarf/group assignments are per-fortress.

(Also has the fix for OS X and setuid detection; I can split that out if you want.)

I've never done any Qt before, so please don't be shy about pointing out where I've been dumb.
One challenge is that we don't want to deserialize cases where the global group has been deleted while running a different fort. This means that the deserialization logic needs to know about the global list, and I didn't want to have groups talk to DwarfTherapist. I can encapsulate it a bit better, though.