Split CUserTimer into CIRCNetworkPingTimer and CIRCNetworkJoinTimer

This patch splits CUserTimer into two other timers:

CIRCNetworkPingTimer: This timer sends PING messages to connected
client's and IRC servers.

CIRCNetworkJoinTimer: This timer enforces the MaxJoin setting by only
allowing a specified amount of channels to join at the same time.

JoinChans() is modified to reset the ping timer once we hit the MaxJoin.
This allows us to call it from any function without breaking the timing
logic.
Start joining channels as soon as we are connected
Add PING_TIMEOUT constant to CIRCNetwork