restructure the project to use blueprints

In this commit almost all files had to be touched.

The project is now clustered into two blueprints:
- registration
- http_storage

The registration blueprint takes care of all the eudat-specific
functions, the http storage one represents the CDMI endpoint
(with multiple backends).

To separate the blueprints, the files have been put into two folders.
The shared modules are auth, metadata, and common.

The auth module will remain shared, but I can think of a third
blueprint for metadata if this becomes more complex
(invenio or so ...).

There are no direct dependencies between the two blueprints, but strong
interaction between metadata and http_storage.

Additionally, the app object is now created through a factory function,
which made changes in several files and the tests necessary, as the
'app' object is no longer available freely.
Modules inside a blueprint can call the flask.current_app object,
but this is not always available.
Including any file that depends on storage.py needs an accessible
app object.

The name for the http_storage is not the best, I'd be happy to hear
if you have a better one! It should convey that it's a storage server,
that it speaks HTTP, that it supports CDMI, but that it's not
limited to it.
adapt localstorage test to app factory and nosetests

adapt the localstorage tests so that they work with the
create_app function. This means that we have to use local
imports in every test and run it in an explicit app_context,
because the sanitize function takes options from the config.
On the way, the moduel is adapted to nosetests.
remove the unused template streaming function
move json_list_gen() into the json_generator function

it is the only one that uses json_list_gen
add a test for cdmi_json_generator
mark functions in cdmi.py as private and adapt the tests
remove unused jsonify() function from cdmi.py
json.dumps all simple values in the json wrapper

before writing out values in _wrap_with_json_gen(),
make sure they are proper json with dumps.
This does not work, though, for iterators, since we would
have to store them completely in memory first.
stream directory listings for cdmi and json

change the get_cdmi_dir_obj function to work on the generator
directly and not convert it into a list.
This works with all output forms, but the templating engine
will build-up the template in memory, so this is not proper streaming.
make sure localstorage.stat() without permissions doesn't fail

The os.walk function used in localstorage.stat would fail when
trying to get entries from a forbidden directories.
We now use os.listdir, which gets not only files, but also
directories, and catch its errors.