FindBugs Cleanup

Fixed a covariant equals bug (overrode equals(Object) and pointed it at
the Equals(Hashcode))
FindBugs Cleanup - The Sequel

Potentially stopped an NPE and an odd comparison from failing for
negative numbers.  Also flagged an apparent infinite loop.  I don't see
that method being called, and in fact, it is overridden a lot.
Shouldn't LayerWrapper be abstract?
Infinite Loop, possibly

This was supposed to be in the previous commit.