Move all local data to peerhandler into a peerState structure

Pass peerstate around instead of indivdual bits.
Have a list per class of peer instead of just one.

persistentpeers and outbound(nonpersistent) peers get their own lists,
so iterating over them can be much simpler (and quicker when you have
125 peer of which 8 are outbound).
keep track of connected groups as we gain and lose outbound peers.

Instead of recalculating every time we go to look for more peers. Should
save a few cycles.