WIP - 1050 Implementation and Fixes

* [X] Dat loading
* [ ] Write new animation functionality.
* [x] Implement protocol changes.
* [X] Fix the way we reference client versions.

**New Animations:**
The new animation data is as follows:
* Asynchronous (true/false) - ?
* Loop Count (Integer) - If the loop count is > 0 then do an animation loop (not sure if is means if will not repeat the loop as we have animation phases)
* Start Index (Integer) - Which phase index to start on
* Frame Durations (List of Min/Max) - Math.Random(std::get<0>(frame[i]), std::get<1>(frame[i])) will be that frames duration.

**Note with Version Changes:**
The client version and protocol version where unsynchronized for some releases, not sure if this will be the normal standard as they seem to have gone back to using the announced version as the protocol version sent in the login packet again.

**Client Version:** Publicly announced version when downloading Cipsoft client.
**Protocol Version:** Previously was the same as the client version, but was unsychronized in some releases, now it needs to be verified and added here to `g_game.getClientProtocolVersion(client)` function if it does not match the client version.

**Important:** Use getClientVersion for specific protocol features to ensure we are using the proper version.

<a href="http://www.youtube.com/watch?feature=player_embedded&v=u-2lapbLi3U
" target="_blank"><img src="http://img.youtube.com/vi/u-2lapbLi3U/0.jpg" alt="Animationz" width="240" height="180" border="10" /></a>
Animation without enhanced animations (just the phases)

Feel free to help devs I'm out of time `git checkout 1050_impl`