Fix#132
Passing the collections parameter used to mean that the storage should
append its value to the URL or path. This was a leaky abstraction for
the reasons explained in #132.
The new behavior removes this meaning from this parameter. Vdirsyncer
now maintains a cache of discovered collections.
- Fix#49 -- The old fix caused problems with other servers. The new
behavior only decodes ``@`` characters.
- ``@`` is now not used when generating a new href, as some servers seem
to have problems with it (http://sabre.io/dav/character-encoding/).
This behavior is configurable via the ``unsafe_href_chars`` parameters
for DAV storages, and is disabled in the testsuite for Radicale and
ownCloud.
- Decoding of hrefs is also done twice for CarddavStorage.list because
of owncloud/contacts#581. Vdirsyncer has behaved like that before, but
not intentionally.
- Storages now don't share their ``_get_href`` methods anymore.