Add back_inserter, since std::back_inserter sucks

std::back_insert_iterator has void for all type_traits
Add insert_iterator and tests
Rename sfinae to trait
Add consume and tests