added iterators over linked-lists

The linked-list implementation can now provide an generic iterator over its
elements. Also, the linked-list can be retrieve directly as an iterator, whose
lifetime is tied to the iterator. Removed some unused code in the iterator
files.