refactor: simplify state handling internals
refactor: simplify state handling internals

Currently, the logic that governs what is happening in the `Connection` 
while the connection is in a specific state is spread over different 
methods, callbacks and internal events, sometimes with 
`process.nextTick` calls sprinkled in for good measure. This often makes 
this code, it's logic and the state transitions much harder to 
understand than required.

By inlining some of the method calls and removing some internal events, 
we can clean up and simplify this code, without impacting any 
functionality.

tediousjs/tedious,pekim/tedious,tediousjs/tedious