Moved from string might be empty...
Rename split to remove_substr
Move formatted output operator into StringRefStream
char_traits::compare is actually defined for nullptrs if length is 0
Don't use std::search
Add an explicit conversion operator to std::string
Use empty() to test whether a string is empty
Rename value_type to element_type
Rename stored_type to value_type
Rewrite split()

Store (non-const) temporary std::string's within the range.
No longer compare iterators from different strings.
Iterators are now InputIterator's.
Formatting
Rename command line flags IgnoreX to AllowX
Add <functional> for std::reference_wrapper
Add the possibility to print an overview to help()
Add a method to override the automatic container detection