Refactored ArrayListIterator to ListIterator

The remove() method doesn't work for ArrayList so I changed it so that
the iterator uses a LinkedList instead and refactored the files