Add support for passing challenge/response manually

This makes integrations into frameworks a bit easier. If no values are passed, then the values will be read from $_POST as before, so that there is no BC break. 

Not sure if I got your coding style right, feel free to correct as needed.