Update Canary Recode references to 0.10
rejigger Forge. LWC now works in Single Player again too!
Switch to H2 as the default storage engine to give it a good testing for a while. If it proves worthy then may very well switch permanently
Finally only download libraries when actually needed. It is done by checking for a specific class from that library. If it's not available then the library will be loaded (and downloaded if not already downloaded).

This is all done via a new resources.yml. A base path for the files to be downloaded from can also be set. The resourcelibs.txt file now contains the absolute minimum required files for LWC to startup (YAML & gettext). Just database libraries are in resources.yml at the moment.

As well, Minecraft (which Forge uses for mods after the bootstrap phase) has its own class loader that caches classes that were previously not loaded when trying to load a class. Because I check the class _and then_ load it this means the class can never actually be loaded. To get around this I've reflected into the class and removed the class I checked. It is just simply a Set<String>
Accidentally hit global cleanup. I'll roll with it anyway
Forge: changes to transformations. SRG naming is now extracted from Forge and saved in mappings.yml. This is in preparation for client side mod testing.
Remove support for Crow/Canary. This is in line with the Canary team not updating these and moving to Canary Recode. Canary Recode will still be supported.

Crow/Canary would've been dropped sooner or later anyway. It was missing a lot of events LWC needs.
Remove Sapling listeners. No longer needed as it seems it's no longer possible to exploit this.
forgot to remove canary from parent pom
Piston events: Allow pistons to move freely and don't check for protections when the block has a tile entity (pistons can't move them)