CustomNonbondedForce can restrict the computation to particular groups of atoms

The implementation is now complete.  It's a lot of code, but any feedback would be great.