Fixes #220, Fixes #373 Cell and SurplusCell as hashable now.
Since Cell overrides == it must override hash() too, and to make it possible to use it in hashes we should override
eql? and equal? too.  Plus hash() must return the same value for all cells because of SurplusCell.