Remove a piece of disabled code in choose_random_entry_impl().
choose_random_entry_impl(): Remove useless consider_exit_family.

The variable was useless since it was only toggled off in disabled code.

If the 'exit_family' smartlist is empty, we don't consider exit family
anyway.
Create skeleton for populate_live_entry_guards().

Now we are ready to move code from choose_random_entry_impl() to it.
Move code from choose_random_entry_impl() to the new function.

This commit only _moves_ code.
Fix the functionality of populate_live_entry_guards().
Constify aggressively in populate_live_entry_guards().
Make populate_live_entry_guards() more smoothly testable.
Make a few entrynodes.c functions testable.
Document choose_random_entry_impl() and populate_live_entry_guards().
Add some test descriptors to src/test/.
Functionify the descriptor age check so that we can NOP it in tests.
Add the entrynodes.c unit tests.
Change interface of router_descriptor_is_too_old().
fix a c99-ism
Merge remote-tracking branch 'asn/bug12207_second_draft'
changes file for 12207