Refactored Network and Core

Refactored the Network package (which is now part of Common)
Refactored the Core package (which is now Common)

- Network uses .NET Async IO Callbacks
- Network is now its own Layer
- Stripped a lot of unused stuff from Core
- Refactored a lot of classes from Core
- Major refactoring of Session and how it interacts with Network
- Session gets informed of underlying events directly (new data, client disconnected)
- Session now employs a State pattern, that is used to distinguish between the handshake and the normal 'connected' state