All forge blocks will now send a BlockPlaceEvent in canPlaceEntityOnSide.

Fixes #381, #384, #385, #387, #390, #391

* Centralized forge BlockPlaceEvent to canPlaceEntityOnSide. This allows mods
that override ItemBlock.onItemUse and ItemBlock.placeBlockAt such as RP2's
microblocks, pipes, wires, tubes etc. to send events properly.
The event has one purpose and that is to cancel if needed. If the event
was not cancelled, the blockstate will still be reverted to allow
placement to function normally and maintain compatibility.
Fix pre-version OBC/NMS package remap ordering
Fix incomplete inheritance remapping for Minecart Mania compatibility. Fixes #339.

If during plugin load inheritance information for a given class
is not available in the global inheritance map, it will be looked
up on-demand from the plugin (only) via URLClassLoaderInheritanceProvider.
Previously, inheritance was only added before each class load. On-
demand inheritance remapping fixes incomplete remaps where a plugin
references an NMS plugin subclass not yet loaded, as observed in
Minecart Mania Reborn.

For performance, results are cached. Implements #87 without #97,
see: https://github.com/MinecraftPortCentral/MCPC-Plus/commit/46f8821a0662192e92a5402ee6d0c306c45c6095

Requires latest snapshot of SpecialSource.
Merge branch 'master' of https://github.com/MinecraftPortCentral/MCPC-Plus