Tor Family must be configured uniquely for the provider

Currently, the tor puppet recipe hard-codes the tor family! This is not good.

The MyFamily tor config is a list of all the other nodes in the family. Rather than use fingerprints, which would need to be gathered from each node, we can use nicknames that include a bit of randomness and are unlikely to conflict with the nicknames of other providers:

changes to services/tor.json:

"tor": {
  "nickname":"= (self.name + secret(:tor_family)).sub('_','')[0..18]",
  "family": "= nodes[:service => 'tor'].field('tor.nickname').join(',')"
}

this will make nickname something like "rabbitLKJYW23695JGLKJ" where rabbit is the node name. Tor nicknames must not have underscores, as i read the manual, and must be less than 19 characters.

family is set to a single string, comma separated list of node tor nicknames.

then, change site_tor puppet to use $tor['family'] value for where currently my_family is hardcoded.

(from redmine: created on 2014-02-28, closed on 2014-04-29, relates #5151 (closed))