[BREAKING CHANGE] Split part of OptionWidget into DecoratedOptionWidget

Not all options widgets need to have icons and indicators.

Breaking change:
* Some subclasses may need to inherit from OO.ui.DecoratedOptionWidget
  instead of OO.ui.OptionWidget

Change-Id: I508c1555620e371a7ab4ac07c4db0400c009f3d7
Add flag event to OO.ui.FlaggableElement

Changes:
* Add event to OO.ui.FlaggableElement which describes which flags changed

Change-Id: Iecfcada8f847de33ded5efa11c83216dd31bb002