Added proxy support (fixes #114). Thanks @Johni0702!

Proxies such as BungeeCord have the option to forward the real address,
UUID, and properties from the auth process to the backing server so that
they can appear to be in online mode even if they are not.
Move code for block rotation out of BlockSign (also used for Skulls and Banners)
Initial work on Banners
Use enum instead of hardcoded magic values
(cherry picked from commit b83837e)
UpdateBlockEntityMessage protocol courtesy of @Aaron1101
(cherry picked from commit ea3532b)
Basically everything for Banners. As of yet, untested.
Formatting fixes
Rotate properly, update on placing, and actually save layers to NBT