Local node optimization

Still missing:  Tests

Tell me what you think so far, especially on an architectural stand point.

Modification: 

* Local node optimization
* Protocol now pass more info to the child protocol so they can make decision according to that new info. The new info: **destination** when a message is sent, **connectionInfo** when message and response is received, **connectionInfo** when response is sent (allow forking.)