Add an explicit (shallow) copy constructor for CustomNonbondedForce. This fixes
segfaults when you use the long-range dispersion correction with the
CustomNonbondedForce if the force uses TabulatedFunction objects. Basically, it
prevents the copy from taking ownership (and deleting) the functions in its
destructor.

The use cases for CustomNonbondedForce copying currently is to recompute the
long-range prefactor if the parameters change (so the CustomNonbondedForceImpl
kernels need a copy of the Force object). Doing a full (deep) copy would be a
bit slower (although would only need to be paid once for each
CustomNonbondedForce object being used).
Switch to a deep copy on the tabulated functions in CustomNonbondedForce. This
necessitated creating a Copy method to do that on TabulatedFunction classes.
- Make the TabulatedFunction::Copy method a pure virtual.
- Don't make a Copy method on FunctionInfo
- Have the Copy() methods on the TabulatedFunction subclasses return a pointer
Get rid of vestigial variable.
Add a comment about updating the copy constructor if the implementation details
are changed for CustomNonbondedForce.
Merge pull request #539 from swails/fix_customnonbondedforce_segfault

Fix customnonbondedforce segfault