introduce ImpossibleException.

This is used for code paths that should never happen. As experience
shows this are the code paths that will certainly happen. To prevent
errors to slip unseen introduce this special exception that will
terminate the whole program.

As suggested by John Hanley (jhanley at parc dot com).