This commit is based on work done by Andriy Gapon initially
submmitted in D26407 back in 2020. The idea was to add internal PIC
controller to serve GPIO interrupts to attached bus client (child),
new flag IE_BUS_PRIV is introduced to mark interrupts internal to the
bus. The code has been adopted to build with recent kernel source.
It was observed that after client event handler is removed (module
unloaded), a stray interrupt may appear because handler is scheduled
for execution one last time to let it remove itself. The sometimes
delayed handler then consequently calls to pre_ and post_ithread which
unmasks interrupts on no longer used GPIO pin.
A workaround added to prevent such stray interrupts, see extended
comment in gpiopic_remove_handler().