allow comparator-functors instead of less-functors

this can be more performant in the shared memory use-case
add member access operator to iterator