Adding residual checks into IPF line searches to help improve their usefulness in finite precision and improving the configurability of the python IPM drivers