If a lazyCompoundVal to a struct is bound to the store, there is a policy which decides
whether a copy gets created instead.
This patch introduces a similar policy for arrays, which is required to model structured
binding to arrays without false negatives.
Unless we use this a lot, it'd be better to just use AnalyzerOptions natively, it'd be more visible that this is directly configurable by the user.
There is no need to change this once its here, just a general design observation.