Fix signature verification

SignPart::signature_valid? expects an object that responds to encoded() (like Mail::Body). Mail::Body.encoded returns altered data, though, which might mismatch the original input if that input wasn't generated by Mail. E.g. Mail adds an Content-ID-header if none is present. So to always successfully verify a signature we must check it against the raw message source.

Mail provides the message source as Part::raw_source(). Unfortunately that method returns an additional CRLF (see https://github.com/mikel/mail/issues/702), so currently we must check the signature against `#{part.header.raw_source}\r\n\r\n#{part.body.raw_source}`


(Also, maybe the name SignedPart would be more telling?)