save the _create_dirlist_gen function from known exceptions

this function calls metadata.stat, which can throw
MalformedPathException and NotFoundException -- these let
the create_dirlist function fail, if one or more items
are not accessible.

We replace it with a new function cdmi._safe_stat, which
catches these two exceptions and just returns empty results
then.

This way we get a complete list even with some inaccessible
folders (they just don't have any detailed information).
fix the check_path function in localstorage to accept '/'

the check with os.path.normpath would fail for '/', because
normpath does not transform it to '' (which is good).
Because it removes the trailing slash for everything else,
we had a switch that compares only path[:-1] to the normpath
result if the last char was a '/'.
Now the case is:
  remove last char if '/' and if len path > 1
add an experimental version of a strict connection limit

Until now we created more irods connection if necessary, but
only kept n alive after the request.
Now we limit it to n.

This patch adds:
- an account for used connections implemented as a set
- making the get() call blocking

It's experimental, because:
- the blocking call does not have a timeout and may hang
  the server
- the remove call from the used connection set may throw
  an exception if the accounting went wrong and we try to
  remove a connection that doesn't exist