Fix Entry implements Comparable but not equals

Will result in errors if Entry objects are put in a (Sorted) Set.
Must implement hashCode when implementing equals.
Both methods auto-generated by Android Studio.
Add comments, remove some over-zealous FIXMEs I added earlier
Improve error logging and add comments