Add TopCause() function

The TopCause(error) function is the same as Cause, with the exception
that it ignores masking. This is to address issue #8 , to be able to get
the topmost error even if errors have been passed through multiple
errgo.Mask(err)