Make separate lists for dihedrals and the dihedrals with loaded parameters.  The
former has a single entry for all unique dihedrals. The latter has a separate
entry for every _term_ of every dihedral (and the latter is the one with the
parameters loaded into it). This way, parameter sets can be reloaded at will
without relying on the hack that createSystem previously employed (i.e., backing
up the dihedral array, clobbering it, then putting it back). This way is cleaner
and safer (although functionally equivalent for typical OpenMM use).