WL-3119 Add MIME headers to Attachment

Add the `Content-Type` and `Content-Disposition` headers to the Attachment
object for fine grain access to how the attachment presented.

Allows the definition of inline calendar attachments for mail clients to
directly import into a calendar.
WL-3119 Add a header constructor for Attachment

To create an Attachment with MIME headers a new constructor is defined.

Since `Content-Disposition` can only be `inline` or `attachment` an `enum`
is used, the constructor has enough `String` parameters already.
WL-3119 EmailService reads MIME headers

The `BasicEmailService` now recognises the MIME headers that are possibly
defined on an `Attachment`.
WL-3119 Define a message multipart subtype

Similar to the `Content-Disposition` of an attachment. The MIME multipart
subtype allows you to specify the relationship of the message parts.

This is achieved by smuggling in the subtype in an `additionalHeader`. E.g.

    multipart-subtype: mixed

This is introduced so that you can specify a subtype `alternative` for the
presence of calendar attachments which are considered 'alternative'
renderings of the textual email message.
WL-3119 Adjust in the right order

Some tricks are performed to make sure that the MIME headers are configured
correctly for a message and its attachments. Unfortunately these were not
applied in the appropriate order.

This makes sure they are executed correctly.
Merge pull request #25 from ox-it/WL-3119

WL-3119 Calendar invites render inline