adding support for customNonbondedForce and xml script tags

Quick summary of changes:

added support for customNonbondedForce per-particle and global parameter optimization

Detailed summary:

-parsing script in xml files in temporary .txt files, throws error if xml file contains more than one script and asks user to put all scripts in one script. temporary .txt files are not deleted.

-update only per-particle parameters in customNonbondedForce copier, could be extended once updateParametersInContext supports more changes

-copying global parameters in UpdateSimulationParameters using context.setParameter, thus avoiding context reinitialization

Use `forcebalance.nifty.wopen()` here.  This function ensures that you don't write to a symlink by accident, which is important because it's easy to get confused if we write to symlinks.