Added a button widget and test page

Took Mike's code and ported it to a new widget. Made a few changes to
the code and added a test page for buttons to the table of contents.