[Reviewer: Matt] Homestead Server-Assignment-Request changes

The changes here are:

* The obvious changes necessary to store registration state in Cassandra and make decisions about HSS messages based on that. In particular, absence of a row no longer throws an exception but instead returns NOT_REGISTERED.
* Some changes to the cache interface to allow setting different TTLs for different columns (though the design turned out not to need it)
* Some modifications to XmlUtils to fix parsing bugs I hit (and associated UTs to prove them fixed)

Handler UTs aren't included but I'll add some once the handler_uts branch is ready.