Use union for sa_handler and sa_sigaction

POSIX allows for these to occupy the same memory.
Return EINVAL for invalid signal modification

Invalid attempts to modify signal behaviour will now return EINVAL.

Also, some macros are defined for for determining if a signal request is
valid.
Purge <stdint.h> and <stdbool.h> from kernel

These do not belong in kernel.

Register and stack values are replaced with unsigned long; fixed-width
struct members are replaced with uxx types (e.g. u16, u32, etc.) or
bit-fields, where appropriate.