Add option_t::throw_if_undefined, throw for deref operators.

Derefs previously allowed unchecked access to typed data.