feat: add UniswapV4DeployerCompetition
this commit adds a contract that creates a competition to generate the vanity address for Uniswap V4. It does so using CREATE2 salts, pre-calculating the address at which the contract will be deployed and applying a score to the address based on its vanity. leading 0's are weighted most heavily, followed by other 0's and 4's. The winner receives an NFT, a bounty, and deployer privileges
Related Issue
Which issue does this pull request resolve?
Description of changes
hackathon project :D
Probably want to add some frontrunning protection to updateBestAddress e.g. by adding require(msg.sender == address(bytes20(salt)), "Not original miner"); this still leaves 96-bits of entropy for mining