Kernel:Add missing permissions in shared memory & svc
armemu: Join QADD16 and QSUB16 together.

The only difference between these ops is one adds and one subtracts. Everything is literally the same.
armemu: Fix lower-bound signed saturation clamping for QADD16/QSUB16.
armemu: Join SMUAD, SMUSD, and SMLAD
armemu: Fix SMUAD, SMUSD, and SMLAD

Wrong values were being multiplied together.
armemu: Fix FSUBS bug where NaN shouldn't be negated
armemu: Fix FTOUI NaN sign.
Merge pull request #290 from lioncash/vsub

armemu: Backport some VFP fixes from 3dmoo.
Merge pull request #289 from lioncash/smops

Join SMUAD, SMUSD, and SMLAD ops. Also fix them as well.
armemu: Fix SXTAH
armemu: Fix SXTAB
armemu: Fix UXTAB/UXTAH
armemu: Implement REVSH
armemu: Fix PKHTB
armemu: Fix SADD16

The lo and hi parts of the result were being constructed as a result of hi and lo halfword intermixing from the rm and rn regs. However the lo part of the result should be constructed only from the lo halfwords of rm and rn, and the hi part of the result should only be constructed from the hi halfwords of rm and rn.
armemu: Implement UMAAL
Merge pull request #287 from lioncash/qaddsub16

armemu: Join QADD16/QSUB16 and fix saturation clamping.
Merge pull request #293 from lioncash/sops

armemu: Fix SADD16
armemu: Fix SSUB16

Broken from the same reason SADD16 was.

The lo part of the result should only be constructed from the lo halfwords of rm and rn.
The hi part of the result should only be constructed from the hi halfwords of rm and rn.
armemu: Unset GE flags for UADD8 if results are < 0x100

Reference manual states these must be set to zero if this case is true.