MainWindow: fix bugs introduced in 99e7628fed66
TrainingWidget: fix an old bug (the "New rack" button was behaving like "Complement")
Rack: add operator==()
Game: remove a TODO
GameSignals: emit the gameRackChanged() signal even if this is not the last turn
GameSignals: new signal emitted when the rack of the current player changes.

We connect this signal to the RackWidget, which allows a more intuitive
behaviour (in particular, the visual rack is now updated when the
Shuffle button is clicked).
Topping:: allow shuffling the rack
RackWidget: only allow drag & drop if there is no preview on the board
RackWidget: after a drag & drop, notify the game that the rack has changed.

This allows synchronizing all the controls displaying the player rack
(visual and textual ones).
RackWidget: restore the rack properly if drag & drop fails