Using explicit maze cell abstraction
Added isexit, isentrance
Added check for neighbors that doesn't go out of maze. Made AllCells an iterator
Added helper ForEach