This class is abstract to force the programmer to extend
the class. getMessage will include nested exception
information; printStackTrace and other like methods will
delegate to the wrapped exception, if any.

The similarity between this class and the NestedRuntimeException
class is unavoidable, as Java forces these two classes to have different
superclasses (ah, the inflexibility of concrete inheritance!).