Button directive: add support for label, icon, variant and size options