class Machine (subclass of HWComponent) will serve as the root device of
a machine.
Its sub-device list will take the place of the machine device list.
Its create method will take the place of the machine init function.
Its properties will take the place of the machine properties.
This change removes extra loops for the machine devices and properties.
For the set of grackle machines, you can change the machine argument without having to change the ram bank sizes arguments.
For example, all grackle machines can specify 1 GiB using two 512 MiB ram banks.