[arch][arm] add relaxed versions of cp15 accessors

move the current thread pointer and current cpu register to more relaxed
versions.
[kernel][mp] move the inter processor interrupt api over to masks instead of numbers
[kernel][mp] add a global mp struct to start tracking what the cpu(s) are doing

-currently tracking if a cpu is currently idle
[kernel][mp] track per cpu if it's running realtime and adjust scheduler

-Do not send reschedule IPIs to cpus that are currently running realtime
code. May not be perfect as far as properly scheduling new real time
threads, but should generally leave cpus running realtime code alone.