lib/posix-process: Add `signalfd`/`signalfd4` support
Add support for the `signalfd`/`signalfd4` syscalls which will
allow callers to add monitored signal files to the current process,
allowing them to be notified of pending signals.
Introduce the primitives required for supporting signalfd: signal files.
These embed the actual base file structure, the mask that shows what
signals are being monitored as well as other file data to properly
register with libukfile.
Each process' signal descriptor holds control over the signal files
context which tracks the combined mask of all of the open signal files
as well as a list of their references. Having a combined mask helps
to make checking to see whether a process has signal files monitoring
for a given signal faster as compared to iterating every time through
each signal file and checking their masks.
Thus, adding a new signal file entry means updating the combined mask.
Deleting one implies resetting the signal mask and reiterating
through all remaining signal files for a proper combined mask. However,
as an optimization, we don't do that. Instead, we defer mask
recalculation until we need to reiterate through the signal files
again, which is when we have to notify the registered signal files
against a signal number.