Add connection throttling

This is not ready for merge!

_We_ need to write tests @marcusramberg - but please comment and review the code.

Sorry for doing refactoring in the same branch, but I had a hard time wrapping my head around the code as it was structured.
But as the code stands now, all the connections have core_connect_timer set to 1? Won't that make them all connect at the same time at the first startup? This still doesn't seem to address global throttling at all (Ensuring multiple connections doesn't hit the same server at the same time.)