Implemented interfaces for Cell, Region and Puzzle.

Renamed interfaces to add an i at the front of name. Extended interfaces
and implemented them with the relevant classes.