Rework PeerDrive object model

Historically PeerDrive was designed in two separate layers. The base
layer should just provide the storage facility for binary data with the
addition to track the history. The layer above should have added some
necessary structure, e.g. PDSD, to make something useful out of the
basic layer.

This scheme did not hold up because the two layers were dependent on
each other, thus breaking the clear layering. The reason is that the
base layer needs to know the links between documents (e.g. for garbage
collection) but this information is part of the upper layer. This led to
some some ugly hacks like parsing certain parts of documents ('META',
'PDSD') just to recover the links between documents.

This rewrite rectifies the situation by doing away with these two layers
and changing the PeerDrive object model into something more database
like. Documents now consist always of a first class structured part.
Additionally a document may have any number of arbitrarily sized
attachments.

This change completely breaks backwards compatibility, that is for
stored data and also for the various protocols involved.
client: folder: save some overhead on load
server: fix common test testsuite
Merge branch 'new-object-model'

Conflicts:
	client/peerdrive/connector.py
	server/apps/peerdrive/src/peerdrive_ifc_client.erl
client: don't clobber .peerdrive with settings
Use shorter default attachment name
server: fix creation of client ifc cookie file
server: store per-user client ifc cookie in /tmp

The client ifc cookie file is a per-user AND per-machine file and thus
should be stored in /tmp instead of the user home directory. And while
we are at it do the same for the pid-file and the console log.