Fix (potentially) for undefined not-showing-bug

- Graceful fail for cases where it would otherwise be undefined.
- Make `exerciseId` the first parameter of `makeProblem`
- 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”)
- when not in localMode, problemBag is only called when
`nextUserExercise` doesn’t contain a type. When does that happen?