Added some utility methods in upgrades.BasicUpgrade.
Removed some repetition in SmithMenu.
Revert auto ids, added manual ids to all upgrades.

The reason for this is to avoid saving issues where certain upgrades get different ids than the ones they previously had.
This would occur if we were to reorganize them in the code. So it's better just to give them an id yourself and never change it.