[Reviewer: Matt] Fix crash in AuthTimeoutHandler

This change:
* Fixes the main issue, by doing SAS logging after we parse the JSON, not before
* Adds defensive code to report_sip_all_register_marker so it copes with bad URIs
* Refactors the code so that report_sip_all_register_marker is covered by UT

Currently testing by running the live tests over my deployment and verifying that Sprout can handle auth timeout callbacks without crashing. I'll also test that an authentication timeout is correctly shown in SAS. (It sounds like we should have been more paranoid about testing after code review markups here, especially as this wasn't previously covered by UT.)
This section of the diff looks confusing - I've just moved the IMPU check before the IMPi check, so that we still try and raise a marker if we have an IMPU but no IMPI.