MUST USE -mno-red-zone flag otherwise the overlying OS has weird behaviour when running the context switch whilst going in and out of functions
Added descriptions of the weird stuff I've found whilst developing this
Allow include file to be included multiple times in the same compile unit
Initialise the feature output data before calling XENVER_get_features just in case. I'm not sure whether this is required or not, but it makes sense to have it as it is only run once during initialisation.
Do not enable hypervisor callback (aka interrupts) during micro_pv initialisation code. This must be initialised by the overlying operating system
Only call the overlying timer event handler once per timer event. If the overlying operating system needs to handle missed events then it must handle it.