Added a registry to the budgets that collects all of the precomp functions and exposes them. It utilizes the precomp cache so they are not recomputed after a run. You can look in tests/budget/test_precomp.py to see how the interface is used.
The existing arm_cavity and ifo_power were not actually using the precomp interface, and now they are. This will break certain other uses of them as they need to take "f" as part of that interface.
There is also a very rudimentary command line interface. I suggest if people want to improve on that, merge this and improve it in a subsequent MR.