Implant cases

- Adds freedom implant in glass case variant
- Changes implants created from protolathe to variants in glass cases
Research object update

- Updates research testing object to include phoron and engineering tech
Fix num2hex()'s handling of zero
Merge pull request #7250 from GinjaNinja32/num2hex2

Fix num2hex()'s handling of zero
Update implantcase.dm to absolute paths
Implantcase cleanup

- Removed unnecessary icon definitions
- Cleaned up name formatting
- Removed colons
- Added variants for existing implants
Fix for #7232.
Fix for #7204.
Merge pull request #7254 from Segrain/master

Bugfixes.
Makes forced launch handled by shuttle/process()

Forced launches are now run by the shuttle controller through process()
instead of in a separate 'thread' launched from the ui.
Fixes #7238
Fixes atoms with no flags being walkable

Fixes atoms that have no flags set allowing movement into them
regardless of CanPass().
Refactors a lot of reused/redundant death code, fixes #7224
Amendments to previous commit.
Fixes #7266
Fixes #7119
Fixes #7162. Eject ID verb for laptops is still busted though.
Fixes #7151
Fixes #6974
Fixes #7105