Fixed several bugs in ALists, especially SparseAList.

Changed ISparseListSource<T> to get the next index and the item at that index in a single operation.