Updated equal algorithm to improve usage with non random access ranges
Add test for filter
Updated find_if_not, and use that in take_while and drop_while