inconsistency in routerlist_add_family()
routerlist_add_family() is supposed to put the family members of "router" into "sl". There are three rules: 1) If they're in the same /16 network space. 2) If the descriptors declare they're in the same family. 3) If the user's NodeFamilies torrc option lists the router in a family.
In cases 1 and 2, they avoid listing "router" in the returned smartlist. Case 3 though happily includes it.
This typically means that the caller of routerlist_add_family() ends up with a smartlist with "router" in it twice, since most callers of the function start by adding router to the smartlist first. My patch to legacy/trac#2403 (moved) is the first time we do it differently. I think it's safe in that particular case. But we should still make the behavior consistent.