refactor unit tests

there is now one place to define the URLs to be tested.
they are run through all test functions, GET, PUT, and DELETE.

sometimes there are different tests for files and folders,
and for existent and non-existent files, because the tests
need to make very different checks.
fix accessing the '/' root directory

the function decorator did not pass the objpath variable
to the *_cdmi_obj(objpath) function.
refactor the unit tests to simplify adding parameters

- check_html_(get|put|del) take a dict
- they give it in expanded form to check_html_*_404 and so on
  (**params)
- the check functions name the needed argument explicitly,
  but also take **kwargs

- prepare to test for multiple users:
  get_user_list, iterate over product of urls and users
  - not used yet
add tests with different (wrong) credentials

add tests run with
- a valid username,but wrong pw
- wrong username and pw

add checks to all test to except 403 when wrong
credentials are supplied