Decouple the idea of masking/unmasking an intrsource from pic{}.

When we take an interrupt, we mask the source and schedule the thread,
when the thread eventually runs and finishes processing, it unmasks
the source. So there must be a way of unmasking the source in a MI
fashion, each architecture should have a intrsource_unmask() function.
In amd64, we just map it to the corresponding pic{} callback.