Things to figure out:

[X] How to represent the cards with Unicode
[X] How to draw a rectangle with text inside
[X] How to draw a card widget (rectangle with text inside, accept mouse events, can be "turned", colors)
[X] How to draw card widgets on top of each other (to make a pile)
[X] Implement game model logic
    [X] Move card from stock to waste
    [X] Move card from one pile to another
    [X] Move card from waste to a pile in the tableau
    [X] Move card to foundation
[X] Lay out the widgets according to game model
[o] Connect UI events to game model, refresh screen
    [X] Deal from stock
    [X] Move card from one pile to another
    [X] Move card to foundation
    [X] Move card from waste to a pile in the tableau
    [X] Make sure there is only one card selected at one time
    [X] Make all cards facing up in the tableau playable
    [X] Disallow invalid movements (card stays where it is)
    [ ] Only send to foundation if it's double-click (needs double-click detection)
    [ ] Detect if game is won, and display a neat message
    [ ] Make game playable without mouse (arrow keys and enter)


 ╭──────╮  ╭──────╮            ╭──────╮  ╭──────╮  ╭──────╮  ╭──────╮
 │╬╬╬╬╬╬│  │A ♥   │            │A ♥   │  │A ♥   │  │10♠   │  │K ♧   │
 │╬╬╬╬╬╬│  │      │            │      │  │      │  │      │  │      │
 │╬╬╬╬╬╬│  │      │            │      │  │      │  │      │  │      │
 │╬╬╬╬╬╬│  │   ♥ A│            │   ♥ A│  │   ♥ A│  │   ♠10│  │   ♧ K│
 ╰──────╯  ╰──────╯            ╰──────╯  ╰──────╯  ╰──────╯  ╰──────╯
 
 
 ╭──────╮  ╭──────╮  ╭──────╮  ╭──────╮  ╭──────╮  ╭──────╮  ╭──────╮
 │╬╬╬╬╬╬│  │╬╬╬╬╬╬│  │K ♧   │  │A ♥   │  │A ♥   │  │10♠   │  │K ♧   │
 ├──────┤  │╬╬╬╬╬╬│  │      │  │      │  │      │  │      │  │      │
 │K ♥   │  │╬╬╬╬╬╬│  │      │  │      │  │      │  │      │  │      │
 ├──────┤  │╬╬╬╬╬╬│  │   ♧ K│  │   ♥ A│  │   ♥ A│  │   ♠10│  │   ♧ K│
 │Q ♧   │  ╰──────╯  ╰──────╯  ╰──────╯  ╰──────╯  ╰──────╯  ╰──────╯
 ├──────┤
 │J ♥   │
 │      │
 │      │
 │   ♥ A│
 ╰──────╯
