drop the 'unit' value from irods metadata

this is for comptibility with all other backends
that don't support this.
relax the requirements for user metadata
refactor irods _get_user_metadata()

change the use of generators to avoid storing intermediate
values in memory.