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.
Consider changing this to emit a signal from <code>read_dwarves</code> instead. Currently <code>on_connect</code> will be called even if <code>read_dwarves</code> fails.