compiler: Allow disposing of unused record loads

The upcoming polymorphic support can generate unneed record field loads
when a specialised version of a procedure doesn't require all of the
captured variables the general version does. This is easiest to handle
with the DisposeValues infrastructure.