Button widget refactor to use draw

fixed ButtonTests.html but no others yet.
@jvish when you merge this into Chapter7 you'll have to fix all button widgets there.