Implement the halo technique
Implement the halo technique

i.e., build a slightly conservative neighbor list, such that we can
choose to only rebuild it when some atom has moved enough to make it
invalid despite the conservatism.

Con: The lists are larger and thus induce more work.
Pro: The list recomputation itself takes less time.

Co-authored-by: Sam Schoenholz <5507631b18c4b8f8deae8c809e6e37d5af66b8db@google.com>

google-research/dex-lang,google-research/dex-lang,google-research/dex-lang,google-research/dex-lang,google-research/dex-lang,google-research/dex-lang