Added a basic message framework

All common BitTorrent message types are defined as classes
The HandshakeMessage class is fully implemented
All classes derive from the abstract PeerMessage (fully implemented)
PeerMessage contains utility methods for handling binary reads/writes in
messages derived from it
PeerMessage implements the IPeerMessage interface
All exceptions are displayed in the GUI