Only drop items if the player mined with the needed tool

This PR adds checks, whether a Player used the needed tool (e.g. iron pickaxe) to mine a block, otherwise it doesn't drop anything. This checks are in the new class BlockNeedsTool, however every BlockType might override the getDrops() method and made special checks itself, since it now knows the ItemStack a player used.

This PR does not fix the bug that no items are dropped, if the block are insta-breakable, nor does it take enchantments into consideration (e.g fortune, silk touch).

This is related to #98