Implemented redo functionality; major changes to edit handling
Implemented redo functionality; major changes to edit handling

Edit objects now store previous and current states of an edited cell.
New methods `redo()` and `undo()` create a layer of abstraction for
dealing with the `edits` array and the `editPointer`.

avinashjoshi/sensei-grid,datazenit/sensei-grid,cgvarela/sensei-grid,datazenit/sensei-grid,datazenit/sensei-grid,cgvarela/sensei-grid,avinashjoshi/sensei-grid