Now report errors correctly. Also perform lazy FP context recovery when we get a device_not_available trap.
Initialise processor floating point and SSE subsystems. This seems to be the fix for a context switching problem I was seeing.
Added PV equivalents of cli and sti instructions. cli disables hypervisor events and sti instructions enable hypervisor events.
Set CR0.TS flag using HYPERVISOR_fpu_taskswitch. This will cause a device_not_available trap on the next FP/SSE operation which will cause the FP/SSE context to be restored using the fxrstor instruction.

If there has been an fxrstor during the last time slot then use fxsave to store the context as something may have changed.
Tidy up compilation. Add xentime_* symbols to the output file.
Added prototypes for new xentime_* and xenevent_* functions. I think that the xentime_* should actually be spun off into its' own xenschedule file as that is what it really is.