A button component which generates flat UI buttons easily with the ability to extend and override