Improving code layout and documentation
Game and AI improvements

* New super-class, Structure
* Javadoc creation
* Finalisation of variables
* Privatisation of members
* Started integrating NPCs into AI framework
Initial email service for registration emails
Authentication improvements

* Added calls to send email on registration
* Refactored large processMessage function.
* Refactored message decoding to remove ByteString from login and
registration function signatures.
Fixed handling of ApplicationContext

Added static method to enable system to correctly close class path
context on exit.
Code walkthrough

Fixing code analysis, line lengths etc.