Provide option to return best simplified individual on failure

I want to be able to limit my runs to set `max-generations` to a small number and still return the best function and error found so far, even if PushGP ends before the error threshold has been reached. I have added a config called `return-simplified-on-failure`, which, if true, will return the best individual, autosimplified, even if it has not succeeded. By default, it is set to false, and will maintain current behavior so this will not require any changes by those who use the library currently.