Some specific optimizations targeted at hoppers but should help all around as well. LWC startup may be a touch slower for now while more testing is done.

This commit makes LWC do the following:
- When all protections are in the cache don't even go through the protection matcher (skip it entirely)
- Match all blocks for precached protections on startup (makes the above op allowed)
When the cache is full don't bother trying to match any blocks. All precached blocks are matched on startup.
- Hardwires HOPPER to not use any block matchers (i.e. used when the cache is not full)

All of these together should significantly decrease the event time for InventoryMoveItemEvent. For example, it was >30,000 nanoseconds per event for my test server before (around 130 hoppers spamming items every tick) and is now around 2,000-2,500 nanoseconds per event while keeping the exact same functionality.

This commit *might* break things (e.g. LWC-Economy might break since LWC now loads postworld not on startup but from my testing it is OK). If your world doesn't explode in a ball of fire you should be alright.