More sophisticated SubstanceError implementation.

As we proceeded our JS skills had grown...
Now the SubstanceError is capable of error chaining as we know it
from all other programming languages.
This is useful to wrap a low-level into a higher-level error.