respond to alerts occured during bringup
A device can raise an alert on a bus before the alert callback was registered. We should not ignore these alerts, as it would result in the alert pin permanently being low, which prevents other devices from raising alerts. To prevent this from happening, we should manually check if the alert lines are low AFTER we register the alert callback.
Because registering the alert callback and checking the alert lines cannot be done atomically, we cannot exclude the case where an alert occurs after registering the callback but before checking the alert lines. In this case, the callback will also attempt to handle the alert which will result in an error. Since we (presumably) do not want to check the state of the alert lines in the callback, we have to be careful when callbacks can safely be run.