Fix for not-showing-bug

Fix for two different bugs: the first is similar to a previous bug (https://github.com/Khan/khan-exercises/pull/122815), and the second allows a more graceful fail for the not-showing-bug where the problem's type is `undefined`.  

For the first one, the variable `exercises` may contains multiple exercises with the same `id`, which causes problems when a core problem is expanded. For example, in issue https://github.com/Khan/khan-exercises/issues/129114, there is the id `multiple` in both divisibility_0.5 and comparing_fractions_2, so when it looks for the `original`, it sometimes can’t find it. The most straightfoward way to resolve the problem is to simply pass `exerciseId` in as a parameter to `makeProblem`.

For the second, if the `problem` is still null after checking for an `exerciseType` and the `problemBag`, try to fail gracefully  by creating a problem from the exerciseId. This presumes that `problems` contains problems with the `exerciseId`, but that is likely since all `undefined` not-showing-bugs contain an exercise which is loaded.

Also,
- Have all instances of `makeProblem` call with `exerciseId`
- Change variable name `id` to `exerciseType` for clarity
- Fix regular expression for inputs like “divisibility_0.5”, which used to be read as “5” because of the period (only caused errors in localMode).

Loose ends:
- makeProblem on line 1502 (“Hook out for exercise test runner”). I don't understand it.
- when not in localMode, problemBag is only called when `nextUserExercise` doesn’t contain a type. When does that happen? When/where/how does `readyForNextProblem` in interface.js get it's data?