Revamped place and dig event handling.

Throw BlockBreakEvents in creative (fixes #273).
Fix BlockPlaceEvents returning AIR (fixes #271).
Prevent block break with swords in creative (fixes #214).
Simplified dig and place logic slightly.
UpdateBlockEntityMessage protocol courtesy of @Aaron1101
Progress on Skulls. Still WIP.
- Skulls place with correct position.. half the time (wut)
- TileEntity is created on place, but I can't set any of the data needed (halp)
  - Should save/load properly if it actually gets set
- ItemMeta should be implemented properly. Not tested yet.
Add in rotation logic.

Due to the client not recieving the packets for entity updates, this won't show as actually rotated (but it's in the NBT)
Change Player.sendBlockEntityUpdate to Player.sendSkullChange (packet is used for more than just skulls, derp), and also fix the operation
Error if not the correct materialdata
Derp, actually return the drops for a skull
Changes to storage of Profiles
- Player profile is now saved and loaded, along with textures etc. (not yet tested)
- Not sure how Vanilla implementation gets profile for offline players etc
- Moved some static methods to BlockSkull
Don't update twice on place
TODOs for Full profile implementation (same as what's on the blocks)
This moves code for creating/saving NBT data for a PlayerProfile to the profile. It also updates the MetaSkull to use 1.8's format (same as the block)
Fix rotation
Move static method to BlockSkull
PlayerProfile changes from Aaron1011
Don't allow placement on tops of blocks
Handle no UUID being returned from API
Added basic potion effect definitions (fixes #295).
Merge branch 'master' into skulls
Added checkstyle and fixed code to obey it (thanks @meggawatts).