Problem
Recently in the FlashblockNumber contract we had to copy-paste sections of the BlockBuilderPolicy's caching logic into the FlashblockNumber contract in order for it to be able to outsource verifying the builder role to the BlockBuilderPolicy. This was error-prone and caused duplicative code
Solution
Refactor this caching logic into a Solidity library that can be easily re-used by external contracts. This will make it so that a policy contract can outsource its auth logic to another policy with as little code duplication as possible.