In some cases, like with inserts, we may have a matching size register already, but still decide to try to look further. This change adds a CurrentBest register to the value finder state, and any time a method fails to make progress, returns that register (which may just be an empty Register).
To facilitate this, add a new entry point to the findValueFromDef() function which initializes this state.
Also fix the build vector finder to return the current build_vector if all sources are being requested.
Comment is out of date?