[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.)