Added hard drive object.
Migrated hard drive implementation. All works as far as I can test without a display. Fixed many small bugs.