This class is intended to be used as a replacement for the
java.beans.PropertyChangeListener added to any implementation of an
javax.swing.AbstractButton which has been associated with a
javax.swing.Action. It will update the AbstractButton in response to
changes in the Action (i.e., icon, tooltip, etc.). It has been enhanced
beyond the scope of te Swing implementation to additionaly support toggle
state and accelerators which apply to some descendants of AbstractButton
such as javax.swing.JCheckBoxMenuItem.
Note: If you subclass this class you must make your subclass not reference
the adaptee, since this reference will disallow collection that this class
was designed to allow. This means no annon inner classes; static inners work.