TetrisEngine: return boolean on moves to indicate if the move as successful
TetrisAI: isolate code to modify the mock grid
TetrisEngine: protect startengine method with writeLock
TetrisEngine: rewrite getActiveblock and getNextblock to support null
AbstractAI: add processIterator method to make AI execute slowly
add some javadoc
TetrisEngine: simplify generation on first activeblock and next block
TetrisEngine: remove TetrisEngineListener interface

Use PropertyChangeListener on its place, for more granular control and more robust code
TetrisGameDefinitions: make freeSpaces static, write more documentation
TetrisEngine: rename getMockGrid to createMockGrid, add documentation