interfaces: Ensure that forceModIface deeply forces a ModIface
A ModIface is the result of compilation that we keep for a long time in memory. Therefore, it's very important to manage what we are going to retain and remove any external references to things which we might have captured compilation.
If storing your ModIface in memory uses too much space, then store less things or make it use a more efficient representation.
In the past there have been many space leak bugs by not sufficiently forcing a ModIface (#15111 (closed))
This patch adds all the missing NFData instances for all the places I could find where we weren't deeply forcing the structure.