Store the pointer element type inside LValue so that we can preserve it when converting it back into an Address. Storing the pointer element type might not be strictly required here in that we could probably re-derive it from the QualType (which would require CGF access though), but storing it seems like the simpler solution.
The global register case is special and does not store an element type, as the value is not a pointer type in that case and it's not possible to create an Address from it.
This is the main remaining part from D103465.