[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

That doesn't quite work when you need the string escaped - +sip.instance is usually in quotes (and so could be `"<;;;;>"`, or something more realistic - e.g. a URI with parameters) but gr is a pvalue so can't be quoted, so you'd need to convert that +sip.instance into `";gr=%3e%3e%3e%3e"` not `";gr=;;;;"`.

How would you feel about having this method return a pjsip_sip_uri*? On INVITEs that could then be directly compared against the Request-URI using pjsip_uri_cmp, and you'd only need to convert to a string if doing debug logging.