Implement iterator comparison primitives.

In the STL, iterators are equal if they point at the same element and
are not invalidated.
Since the ll_list algorithms cannot allow an iterator to become completely
invalidated (they are meant to be used concurrently) the default comparison
for iterators does not work.
Instead, two iterators would be equal (for algorithmic purposes) if they
either point at the same position.
Position is dependant on the direction, hence the position check is
direction dependant.
Make ll_simple_list headers compile.
Add ll_list code to compilation.
Fix ll_simple_list compile issues.
Fix compile issues for ll_list.