1.8 Protocol Update

Adds the new 1.8 protocol.
How about this piece of code, then, do you agree, @worktycho?
```cpp
UInt32 BlockXRaw, BlockY, BlockZRaw;
BlockXRaw = (Value >> 38) & 0x3ffffff;
BlockYRaw = (Value >> 26) & 0xfff;
BlockZRaw = (Value & 0x3ffffff);
BlockX = ((BlockXRaw & 0x2000000) == 0) ? BlockXRaw : (~(BlockXRaw & 0x1ffffff)) + 1
BlockY = ((BlockYRaw & 0x800) == 0)     ? BlockYRaw : (~(BlockXRaw & 0x7ff)) + 1
BlockZ = ((BlockZRaw & 0x2000000) == 0) ? BlockZRaw : (~(BlockZRaw & 0x1ffffff)) + 1
```