Virtualsmp

The following series of patches adds the necessary synchronization in the VMM to support multiple virtual CPUs on different physical cores. A description of the concepts and mechanisms can be found in Markus' thesis titled "Adding SMP Support to a User-Level VMM"