add CDMI json support for GETting files

It adapts the stuff done for getting directories to files.
Some of the new functions have been adapted to be more generic.

Most things should work, except:
- the mimetype is always 'mime'
- all files are base64 encoded, don't know if this should be
  changeable
- (multi-)range requests to CDMI will get strange results.
  content-lengths and so on in the value field.
- the CDMI way to specificy a range is not supported yet.

With the last point there are multiple issues:
1. the CDMI value range must be found out earlier than it is now
2. I don't understand from the spec how the (multi-)range requests
  (with headers) and the CDMI value range go together.
  Is one the same as the other?
  Can you specify a CDMI value multi-range?
  Is the range header for the whole json response
  and the value-range for the 'value' field?

  I don't know.
support cdmi value range as replacing range headers

If a request wants CDMI back, it now looks at the value range
parameter, and _not_ the range header, for the range of the file
to get.
Currently, it only parses a single range, because I am not sure
if multi ranges are supposed to be supported.

Both functions get_cdmi_file/dir_obj have been modified to check the
cdmi parameters (if cdmi was requested) and fail before contacting
the storage backend (or doing anything else, for that matter).