Modified my implementation based on the Meetup

I had a go at using better types than just integers. The Position type has nine values one for each square on the board E.g. TopLeft, Center, BottomRight, etc.

Player is also a Type (X | O)
The board is a map of Position -> Player Option

I used Sets instead of Lists based on the Clojure Example,
and I stole Paddy's Move Syntax.

I also fixed a quirk in my earlier example where it wouldn't always take the quickest win.
I see Paddy solved it in exactly the same way.