Handle 'message' parts in get_body and iter_parts.

I remembered while fixing a previous issue that is_multipart() lies and
returns True for 'message' parts, meaning that iter_parts would return
the message from the payload when it should return an empty list.  So I
added a test...and that revealed that get_body was also bugged by this,
since walk also returns the payload message as if it were a part.  This
changeset fixed both of those bugs.  Too bad I can't change walk...the
bug in get_body makes it pretty clear that treating a message part as if
it were a multipart is a bug in the original design.