Initial implementation for session.
Restructure source directory.
Implement Protocol factory.

HTTP protocol is now completely decoupled from connection.
We can support other protocols with this architecture.
Look at IProtocol for more info.
Initial implementation for session.
Merge branch 'protocol_factory'