Bacteria

Each newly painted point is a distinct object in the matrix. Checks to find unoccupied neighbouring fields are done via the `MatrixObject.passable` property of each object (a Bacteria has `passable` set to `false`).

This version fills the entire screen.