Always throw errors for bad string conversions

If we're doing things right, the only string conversions are at
initialization time and the results get cached as proper types, so
it shouldn't be too expensive to do an extra if() even in opt mode.

Not as expensive as having a typo in my config file and not noticing
until I see the time steps full of NaNs, certainly...