Refactored Cell for extensibility

* Extracted a Cell interface from AbstractCell
* Removed "final" modifier from CellImg

Just wanted to make sure these changes are ok with everyone.