Created do_force_listed and moved code to the module

This commit is almost pure code motion and renaming, modulo things
like changes to predicates because they've been handled earlier in the
call tree.

Converted the logic to return immediately if GMX_FORCE_LISTED is
false, to make understanding and indenting easier.

Also migrated position-restraints code to bonded module, and called it
from a sensible place together with the other code inside
GMX_FORCE_LISTED. Elapsed time for position restraints now accrues to
the listed sub-timer, instead of a catch-all.

Reorganized the foreign-lambda part of position restraints to be
called together with the other foreign-lambda bonded
interactions. Fixed benign bug introduced by the copy-pasting in the
Verlet-scheme monster commit, where dvdl was re-used for
foreign-lambda position restraints in the then-newly-created
posres_wrapper(), instead of the dummy dvdl_dum.

Made some more const correctness of x and pbc.

Cleaned up some include-dependency logic in files in the module.

Change-Id: I118af1d66da210e08d9ea065d1f431b7470742cc