Move NBNXM function declarations into headers with defined visibility (version 2)
GPU functions in NBNXM GPU module can be used from outside NBNXM GPU, or only used from within other GPU functions of NBNXM (internal). This change defines three respective headers and sorts the declarations of the functions accordingly.
Refs #2608
Refs #4045
Alternative to !1431 (closed) , where the visible functions were also divided into those visible from inside general NBNXM module (including from CPU parts of it) and those, used from outside it (e.g. from sim_utils).
Edited by Artem Zhmurov