Fleshing out Button class

added methods for the shape swap
hard-coded state colours (to be supplanted by some kind of palette
system later)