Provide option to return report 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 if PushGP ends before the error threshold has been reached. I have added a config called return-report-on-failure, which, if true, will return the pushgp results 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.