Authentication Flatfile is now in place

Authentication class has been added, allowing the hashing of a password
and salt, with it being persisted to an xml file. There are register and
authenticate methods available.

Also fixed an error with the clientconnection struct
Authentication messages now accepted

Changed from manual xml parsing to the serialization of a struct as this
is easier to extend and less error prone. Also added into the message
handling calling the authentication class to process them correctly.
Fixed an error where register user did not check to see if the username
was already taken.