minor cleanup
type_erasure: segment<I,O> moved to public ns, segment_concept moved to segment_concept.hpp, operator| moved to public ns and aliased into detail to help ADL
type_erasure: segment<I,O> moved to public ns, segment_concept moved to segment_concept.hpp, operator| moved to public ns and aliased into detail to help ADL