[ARM] arm32: Add support for CP14 ThumbEE virtualization

The ARMv7 processors have ThumbEE extensions which can be used
by Java or Dalvick based root filesystems such as Android.

ThumbEE, Debug, and Trace support are part of CP14 hence it becomes
important for us to provide infrastructure for virtualizing CP14
register accesses.

This patch adds basic infrastructure for CP14 virtualization and uses
it for virtualizing ThumbEE registers.

All CP14 accesses from VCPU always trap into hypervisor hence for
ThumbEE virtualization we do following:
1. CP14 read access: We return value read from HW on behalf VCPU
and save a copy of it VCPU private context.
2. CP14 write access: We write value to HW and also save a copy of
it in VCPU private context.
3. CP14 save: We don't need to explicitly save registers because
we already keep track of all CP14 read/write accesses via traps.
4. CP14 restore: We have to explicitly restore all register values
by updating them in HW.

Please note that the CP14 virtuatization added by this patch in an
adapted from arm32ve port.

Signed-off-by: Sting Cheng <sting.cheng@gmail.com>
Signed-off-by: Anup Patel <anup@brainfault.org>