Refactored and fixed fire handling and added a "fire-extinguish" flag.

- The fire-spread flag, the fire.disable-all-fire-spread and the stop/allowfire commands now all do the same thing. Extra effort on the part of the developer is now required to diverge their functionalities.
- No longer destroying additional fire blocks when fire-spread is disallowed.
- Added a fire-extinguish flag.

Also:
- The "High frequency flag" setting is now enforced consistently on all parts of the fire-spread flag, not just half of it.
- Logic should now be easier to follow
- Less code duplication
- Transformed the BlockFadeEvent handler into a switch.
- Dissolved a .* import.
- Replaced a reference to the deprecated FallingSand interface by FallingBlock.