activated should depend on the result of enable/disable

enableTrigger: and disableTrigger: return a BOOL. We should take the
value of activate from that, instead of assuming the method always
succeeds.
more explicit behavior when reactivating triggers

Calling setEnabled: has side-effects:
  * sends a notification
  * causes Triggers.plist to be written to disk
  * calls enableTrigger: or disableTrigger:

Only the last of these side-effects is desirable, and only when the
trigger is enabled. (Calling disableTrigger: at launch, when it’s sure
to be disabled already, can be bad.)

So instead of relying on side-effects here, explicitly call the desired
behavior.
prevent duplicate calls to triggerChanged: when enabling/disabling triggers