fix the get_user_metadata function

After the refactoring it returned a dict iwth key user_metadata,
whose value was a dict with the metadata as returned from irods.

Now it returns, as it should, a dict directly with the metadata
value in it. The irods metadata elements, which can have two values,
and converted from (key, val1, val2) to (key, (val1, val2)).
This seems the most sane approach to me.
remove debug print line in the file read stream generator
adjusted indent to 4 spaces; added add_trailing_slash func

this function adds trialing slashes; to be used for base
directories for cdmi. now we don't rely on the backend to do that.
use add_trailing_slash func in cdmi.py
refactor get/set metadata, stat functions

now the __get/set function also expect an object handle,
which is provided by their public get/set counterparts or stat()
The public functions also try to close() the handle
(which only does anything if the object is a file).

added documentation to the functions.