Use events instead of callbacks for most CardFlight activity

Matches the pattern of other plugins (eg battery, network) and is cleaner.