Get secondMemoryManager out of VirtualMachine

* Move it to VirtualMachineEnvironment so the environment
  is really responsible of it. We want a tighter control
  of our memory footprint and the environment seems the right
  entry point for this.
* A MemoryManager is no more ever associated to a single VM
  but can be re-associated with init(VM vm).
Unify spacing in BoostEnvironment declaration
Implement the single backup memory space

* Simply a mutex in withSecondMemoryManager().
Update assertion message about destructibility of StoredWithArrayOfAs
Stop checking if ptr is nullptr in ::free(ptr)

* It is specified ::free() itself checks for nullptr.