Rework spark-button to fix numerous issues

@dinhviethoa 
cc: @zoechi

* Rename `active` attribute to `enabled`, which it really is
* Add a proper `active` attribute and use Bootstrap's styles to support it
* Redo setting CSS classes in a proper way
* Support `active` in `spark-menu-button`
* Etc.