Principal backend upgrades

This PR has two new features:

1. Support for the `test="anyof"` attribute in principal-search `REPORT`. We pretended to support this before and it's required for the `calendarserver-principal-property-search` feature. This will greatly improve the autocomplete for iCal and BusyCal.
2. Support for a seperate findByUri method in principal backends. This method is *only* to find a principal uri when you know a full email address. By splitting this up into a separate method we can do principal lookups correctly, but still allow us to restrict results in principal searches for privacy reasons.