Modify gp mutation to become more universal

At the moment the input arguments to GP mutation functions are ready to
be universal so that the user will have a single API to code against,
instead of a complete different set of input arguments for both GA and
GP.