Bug: it's theoretically possible (seems *very* unlikely) to be unable to restore a valid seed
### How to see the bug

Take the following valid Spanish seed as an example:

```
seed
pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma pluma

spend key
b4050000b4050000b4050000b4050000b4050000b4050000b4050000b4050000
```

It's theoretically possible (obviously extremely unlikely) for a wallet to generate the above seed.

When restoring this seed, it restores to the English seed:

```
seed
plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus

spend key
3b0400003b0400003b0400003b0400003b0400003b0400003b0400003b040000
```

### Why it happens

The wallet tries to infer what language the seed is in. It does this by checking the first X letters of each seed word against each language mnemonic dictionary. For English, only the first 3 letters of each seed word are checked. For Spanish, only the first 4 letters of each seed word are checked.

The first 3 letters of `pluma` -> `plu` is the same as `plus` -> `plu`.

The wallet checks if a seed is English before it checks if the seed is Spanish. When checking if the seed is English, the wallet trims each word to the first 3 letters `plu`, sees `plu` is in the trimmed English mnemonic dictionary, then calculates the seed's checksum using the trimmed words and sees the checksum is valid. The wallet then infers the seed's language is the first valid checksum. Thus, in this case, the checksum passes for English **before the wallet can even check if the checksum is valid in Spanish**, and so the wallet incorrectly thinks the seed is the English seed `plus plus ... plus`.

### Proposed solutions

#### Potentially disruptive but optimal solution

On restore, require the user specify the seed language along with the seed.

EDIT: I had previously proposed requiring the complete full seed (rather than trimmed), but as @iamamyth pointed out [below](https://github.com/monero-project/monero/issues/9089#issuecomment-1863266831), this would not solve the issue because there are duplicate full words across languages (e.g. `audio` in English and Spanish).

#### Less disruptive solution

Only require the language specification in the event a given seed has multiple valid checksums across different languages.

This means the edge case is applied to some already likely very niche users in exceptionally rare circumstances.

### Misc.

Related: 
#1579
https://github.com/serai-dex/serai/pull/490
