fix insert adapter to properly distinguish between std::vector::push_back and KeyedContainer::insert
improve SFINAE constraint in adapt_insert to properly distinguish between containers using push_back(value_type) (eg. std::vector) and insert(value_type) (eg. KeyedContainer)