The statistics thread makes statistics on data from the crawler threads.
When the applications starts, this data may not exists yet causing the
thread to access uninitialized memory.
This bug has been revealed by running the seeder on OSX.
The `CAddrDb::GetStats()` method can access internal dequeue and map
members by index despite their size is zero, causing a segfault.
This fixes it by:
- Testing for size > 0 before accessing, ensuring data exists before building the stats.
- Using `at()` for accessing instead of `[]`. This function checks for
out-of-bounds accesses and will throw an exception instead of a
segfault, making the debugging much easier. It also avoids adding
inadvertently an entry in the map (this is also enforced by making the
method const).
Default age displayed is 0s when there is no peer in the statistics.