view::generate and view::generate_n work with functions with non-const function call operators, fixes #26, begin to document design decisions, guidelines, rationale