Merge pull request #5 from GeorchW/master

Client now saves connection data and can recieve personal and tree messages
Merge pull request #6 from GeorchW/master

Added some GUI, made some shortcut methods
Merge pull request #8 from GeorchW/master

Removed code doubling due to too abstract protocol base class. (Issue #7)
BIG CLEANUP COMMIT!

This commit addresses issues raises by GeorchW in issue #7 (https://github.com/martindevans/MumbleSharp/issues/7). As well as various other neatness changes inspired by this discussion.

 - Connection initialisation is now neater, pass in an IMumbleProtocol to the constructor instead of the weird generic parameter to connect.
 - IMumbleProtocol exists, but is not really expected to be used (it remains for strange use cases that don't fit BasicMumbleProtocol)
 - BasicMumbleProtocol implements IMumbleProtocol and handles as many messages as possible for their basic behaviour - things such as maintaining a list of users when connection and disconnect messages are received. The expected way to use the MumbleSharp library will be to extend BasicMumbleProtocol and override the methods you need.
 - BasicMumbleProtocol has a few convenience methods which exist purely for overriding, such as PersonalMessageReceived and ChannelMessageReceived.
 - The classes in the MumbleSharp.Models namespace were under utilised before. They've received some love to be a little more useful (e.g. Channel and User have SendMessage methods which address and resolve #9 )
 - All the csproj files were broken by GeorchW using a more modern version of Visual Studio than myself. Fixed this, which includes targetting .net4 instead of .net4.5 (we want to keep the target as low as possible). Resolve #10. I did *not* fix MumbleGuiClient since that is the project of GeorchW at the moment.

Signed-off-by: Martin Evans <martindevans@gmail.com>
Fixed extension method so it is actually now an extension method >_>

Signed-off-by: Martin Evans <martindevans@gmail.com>
Merge pull request #1 from martindevans/master

merge newest