Added a IsRealStdIterator trait. Added unit tests.
Will subsequently use this to remove the algo_iterator.h primary template definitions in favour of specialisations.
More housekeeping; removing use of std::true_type, std::false_type and std::integral_constant in favour of equivalent algo::logic namespace functionality.
Also added ALGO_CONSTEXPR_VARIABLE & ALGO_CONSTEXPR_FUNCTION to replace the use of constexpr.
Pull algo::property_impl::eval_if into algo::logic . Added a companion if_ into the namespace too.
Renamed algo::property_impl to algo::detail and removed the infrequently used macro ALGO_IMPL_CALL .
Add unit tests for or_, and_, eval_if and if_ .
Moved more code into detail namespaces to remove complexity from the algo namespace.
Added al algo::move function and used this in preference to std::move .