When the request path leads to a non-existing item, try to create the
Collection object according to an existing collection at request path's
parent.
This change means that the requests whose path leads to a collection
that doesn't exist (at least MKCOL, MKCALENDAR and PUT) need to rely on
the request path more than on the Collection path. It was already done
for PUT, it's been fixed for MKCOL and MKCALENDAR.
Fix#378.
The new API used comes from vdirsyncer, as proposed by @untitaker in
issue #130.
The code has been tested and works with the (too simple) unit tests, and
with Lightning and DAVdroid. Many things are broken and a good part of
the code has not be ported to the new API yet. TODOs have been added
where the application is known to be broken.