Added abstract class ActionComponent
Rewrote ButtonComponent as a descendent of ActionComponent: a button can now trigger a query.
simplified the button component
updated documentation
ActionComponents call render on update instead of draw
oops, forgot to rename one variable