Improved Block/ItemType system

This PR is based on SpaceManiacs [suggestions](https://github.com/GlowstoneMC/Glowstone/issues/536#issuecomment-63026359), but I think it's highly recommended to discuss the implemented component system, before any testing is done.

The diff is quite huge, but a great amount is only single word changes or moved code - f.e. DefaultBlockType#rightClickBlock comes from BlockType#rightClickBlock.

*(fixes #536)*