various changes, reasonably important

1. Device abstract class now has a virtual method to be called when the virtual machine the device is attached to is starting
2. HCI now implements this method and will only show the output window after it is called.
3. IgnisShell class now implements a method for converting a string array into character flags (e.g. -mxy +qgs could be 6 single-character flags)
4. VirtualMachineControl module begins to implement subfunction for VM creation
5. VirtualMachine class now calls virtual function mentioned in 1.