Previously, the model for structs modeled all fields in a struct when
createValue was called for that type. This patch adds a prepass on the
function under analysis to discover the fields referenced in the scope and then
limits modeling to only those fields. This reduces wasted memory usage
(modeling unused fields) which can be important for programss that use large
Note: This patch obviates the need for https://reviews.llvm.org/D123032.