Support all sources of translations in EquipType

In order to do that, you just have to add a "l10n_resource" key in the
specs table, for instance (and by default if none is provided):

```lua
    l10n_resource = "core"
```

When the object is constructed, it loads up the resource and loads the
name and description using the l10n_key that should have been provided
alongside as before, and stores then in a subtable named volatile. This
table is discarded when serializing the object, and rebuilt when
deserializing, which allows for changing the language, or picking up new
translated strings.

For any complaints, please yell at @impaktor, he made me do it.