Update EpisodeCache and HashCodeList to work with age and correctly add

EpisodeCache and HashCodeList now treat the index of an item as its age
and when new episodes are added they are added at the end of the array
with the appropiate shifting for removed elements. They are also now
removing one of the two most similar elements instead of the element
that
is most similar to the new element being added.