This changes add a new exception class that allows an exception to be
thrown through Lua, which will be used to let the VALIDATE macro work
as wanted again.
The code is not yet documented properly for two reasons:
1. Crab_ might want to work to make Lua really exception safe.
2. The documentation needs to refer to this commit, causing a
chicken and egg problem.
If this code remains I'll add the documentation.