[Reviewer: Mike] Add support for public GRUUs

This is ready for review. I've tested by:

* Running the UTs (full coverage, no leaks) and eyeballing the debug logs
* Running my new live test suite, including validating the NOTIFY XML against a schema and using a non-UUID instance-id
* Checking SAS for a call without GRUUs, a call to a GRUU, a call to a nonexistent GRUU, and a call to a GRUU where the binding failed Reject-Contact filtering, and checked that the logs are correct in each case

This routine is a bit ugly - parsing a URI from a string and then rendering it back just to add a "gr=..." parameter.  I think I would just append ";gr=..." to whatever was already in the address of record, staying in the string domain.  This would also avoid the need to pass a pool in.  Performance will be a lot better as well.