Fix Depth header when looking for an addressbook

Using the Depth:1 header when looking for addressbooks causes
unnecessary traffic and parsing time increases, because the
response will include a list of elements belonging to the
collection.

Asking for D:current-user-principal and C:addressbook-home-set with
Depth:1 also triggers a bug on DAViCal, which recalculates
those values for each item inside the collection. Recalculating
these properties implies some queries to the DB.

This can cause big performance issues if the addressbook contains a
high number of elements.
Refine addressbook discovery algorithm

The addressbook discovery algorithm works now as follows:

1. Check if current URL is an addressbook, using Depth:0
2. If not, look for addressbooks on current URL, addressbook-home-set and
principal URL using Depth:1 (recursive search)

The retrieve_addressbooks() method is simpler too.