Tournaments

I need to have this pushed to the real client in some form or another so I can be able to test the tournaments system more easily.
It's currently restricted for use for just the battle tower because this is still in alpha so the intended purpose of use for now is just for testing on the battle tower rather than releasing it for use on all servers. It also reduces the security risk of this edit in case a vulnerability is found, it won't be able to be used by malicious servers.

It currently only has one new library dependency: D3; because it is used to create the pretty tree type tournament graphs such as elimination, which otherwise would be very hard to do.

I hope I'm following all the correct coding styles, but if not, please tell me and I'll fix it up.