Re-added in protect, CreeperHeal style this time. (+2 squashed commit)

Squashed commit:

[a675ab3] Un-deprecate getBlocks, Clean up processList.

[ba519d1] Fix the API, use a new list, and add helper methods.

Squashed commit:

[eb26778] Removed all possibility of CreeperHeal modifying the original block list.

[5babd92] Re-added setBlocks but deprecated. Fixed some potential bugs. improved documentation, removed dead code.

[e69fc1d] Added reference to original explosion list to CHExplosionRecordEvent.

Cleaned up changes, added Javadocs, improved ExplosionRecordEvent Readability. (+1 squashed commits)

[684f2a7] Cursory fix for ExplosionRecordEvent.

Probably needs more testing to ensure no side effects happen.
But it should be fine as long as creeperheal doesn't remove blocks from the original explosion list.