Add game cell animations

On each action, the new game cell simultaneously fades in and grows to
its final size.
Use scene- instead of item-based coordinates

Item coordinates are unreliable as soon as the item is transformed in
some fashion (in our case through animations). We now use the scene
position to determine the active cell within the game board.
Ensure no cells are skipped during fast drags

It can occur that the mouse moves so fast (or processing is so slow)
that a cell is skipped during drag handling, i.e. the move() event is
not fired for it. We handle this case by ensuring that all cells between
the last and current position are inspected.
Replace level selection QListView with a QTableView

The table view will allow users to sort by difficulty and completion
status.
Hide all irrelevant level selection columns
Show difficulty as text in level selection table
Display solved status in level selection table
Level selection UI tweaks
Initially select the entire level row
Enable sorting of the level selection table
Update info and selection after sorting
Apply an initial sort order to levels
Disable updates on table view during setup