Fixed CHExplosionRecordEvent, Added descriptive methods

Added: You can now protect blocks by adding them to the protected block list.
Added readable methods, protect(block), explode(block) and process(block)

Fix: ExplodedBlockManger previously  was passing in the original blocklist
to CHExplosionRecordEvent with mutability, this resulted in the unwanted
side effect when removing entries from the list, also removing them from
the explosion.

This change makes a copy of the list as soon as the event is created.

Unfortunatly this is breaking current behaviour, but current behaviour was
already broken, you could create a new list from a plugin reversing the
logic, removing blocks would explode them not protect them.

See: https://github.com/nitnelave/CreeperHeal/pull/14
Merge pull request #14 from ryantheleach/feature/FixAPI

Fixed CHExplosionRecordEvent API, with suggestions from @nitnelave