fix ?parentURI and objectName in cdmi output
add deferred evaluation to listings on localstorage

replace the map(), which puts the listing in the correct
format, with a itertools.imap call.
This especially helps cdmi requests, because the listing
is never created when it is not requested by the client.

Conflicts:
	eudat_http_api/http_storage/localstorage.py
conditionally only load parts of the app

New configuration parameters decide whether:
the registration component should be loaded,
the storage should be provide read functions,
or the storage should provide write and delete functions.

This enables the app to be deployed distributed, with
each machine having different responsibilites.

The split of the storage interface into read and write
makes is easy to expose a storage read-only by not allowing
any requests that can make modifications.

Conflicts:
	eudat_http_api/__init__.py
fix cdmi parameter for container-children selection

fix the parsing of teh ?childrenrange parameter
so that it works without any range specified

fix the objectID name
hackily implement CDMI PUT copy

Parse a cdmi request enough to find out
if it is a copy request, then try to fulfill it.
All other cdmi requests will do nothing.

This copy implementation does not treat the source uri
as cdmi, but accesses it in plain http (with cdmi headers).
This shortcut was taken to avoid full parsing of the
cdmi message body.

Because it may or may not contain a possibly large
value field, we will have to parse the json partially,
and I am not aware of any json library that could
do this for us.

As usual, the auth tokens are taken from the incoming
request.

+ it can copy from non-cdmi sources :)
add a trailing slash to the parent path in the html rendering

this makes it possible to use the '..' link to move
to the upmost directory.
fix the capabilitiesURI for containers

add parantheses () for correct parsing
fix the cdmi 'copy' put

- fix the return status code to 201
- change the request to the source:
  don't add ?value, since we do a non-cdmi request
  (this is only until we want to transfer the cdmi info
  as well, but even then I could think of two requests,
  one for getting cdmi info and a plain one to get the data)
add check for cdmi request through the version spec

not all cdmi requests have an accept or content-type header
so we cannot use those for checking for a cdmi request.
all cdmi requests, however, have to speficy the cdmi version.