Fix input iterator adapter for associative containers

The typedef'd value type for an associative container must be
std::pair<Key, Value>::second_type. For the vector type an typedef
already exists, hence use this instead of template type
Remove clutter
Update readme

Add documentation, describe interfaces, etc.