Add typehint to optional constructor argument $cause 

This typehint prevents fatal errors in `lang.Throwable::compoundMessage()` later on, in case a non-Throwable argument was passed (which I've seen sometimes happening by mistake).