Move is an algebraic datatype.

now we have an applyMove function
added a modKey: 'k'
player can pull light beads by holding 'k'
fixed tests from previous 3 commits
fixed bug regarding player-pull

if player pulls into a light bead that cannot move,
the light bead being pulled will not move
tweaks to glyph drawing
Merge branch 'player-pull'