Added missing non-const overloads to operator()
Renamed get_less with get_compare
Use of boost::long_long_type to avoid warnings.
Avoid including <iterator>, use intrusive's own version to avoid ADL clashes and minimize some dependencies.
Removed unneded list include.
Simplified iterator_category expression so that old compilers can parse it.
Use of boost::adl_move_swap.
Replaced <algorithm> with <functional> where needed
Added basic equal/lexicographical compare algorithms to avoid complex <algorithm> include and ADL problems in some compilers