Instead of FirmwareClass/VersionClass and FIRMWARE/VERSION, have Firmware and Version classes, and make Firmware::DEFAULT and Version::DEFAULT be the instance with the default version. Other minor refactoring cleanups while here to reduce code duplication.