Metadata sensitive onBlockDestroyedByExplosion

An explosion removes the block before calling onBlockDestroyedByExplosion, meaning that it is impossible to get the metadata of the destroyed block. This PR overloads the standard Block.onBlockDestroyedByExplosion method with a new one that gives the block's metadata as one of its parameters. By default, this new method simply calls the old one, so standard explosion functionality will not be altered.