This adds support for usermode (vdso-like) gettimeofday(2) and clock_gettime(2) on armv7 and armv8 systems which have architectural generic timer hardware. It is similar how the RDTSC timer is used in userspace on x86.
Patch fixes a permission problem where generic timer access from EL0 (or userspace on v7) was not properly initialized on APs.
For ARMv7, it also makes the stack non-executable. The shared page is added for all arms, and signal trampoline code is moved to the page, but I believe that current ARMv8 pmap code does not implement non-executable permissions (I hope that I am wrong). ARMv8 usermode needs the pass to set up PT_GNUSTACK segment anyway (for ARMv7 it was already committed).