refactoring: move GUI for attachment removal into the view class
Composer: enable "remove attachments" only when there are some
Composer: show pretty size for the list of attachments
Composer: show pretty icons for attachments
Composer: allow inline attachments and support renaming them

It comes handy to e.g. mark a patch for an inline display. It might also be
interesting to be able to change the filename of the attachment so that it's
different than what was on-disk (an actual user suggested this).

fixes #587
Gui: treat unrecognized Content-Disposition values as "attachment"

RFC 2183, section 2.8 mandates this. One has to be careful to not treat a
missing Content-Disposition as an "attachment", though :).
QNAM: propagate errors about parts not available further up the stack
GUI: reflect uncached parts in the GUI
Let the QNAM rewrite MIME types of unsupported data in an extensible manner

The QWebView apparently doesn't check whether a MIME type "inherits" from some
supported one, like e.g. text/plain. This menas that it will refuse to render
benign stuff like a C++ source code which is marked with an text/x-csrc, etc.
GUI: allow inline display of inlined attachments of supported MIME types
GUI: show inline attachments with the usual buttons suggesting that they are, in fact, attachments
GUI: unify handling of parts when offline

The code which presents an error to the user is already implemented, so let's
use it instead of an ad-hoc sine telling "offline".
GUI: don't load overly long inlined attachments when not in "online, trash data" mode
GUI: add an icon for attachment download

I'm not sure whether "document-save-as" is better than "download", but at least
on my icon theme, "download" shows a very unintuitive icon while
"document-save-as" shows something which I recognize. Comments welcome.

REVIEW: 111936
GUI: respect Content-Disposition for all MIME types

This patch reworks the way how "attachments" are wrapped in the AttachmentView.
It's done via the following steps:

1) The wrapping is moved into the PartWidgetFactory::create
2) LoadablePartWidget is changed to delegate actual widget instantiation to the
PartWidgetFactory
3) A bunch of changes were needed to make sure that there are no excessive
click-through buttons when the attachment was originally hidden, when the
network is offline, etc.
4) The "supported MIME types" got changed so that container types (i.e. parts
which are made from other parts, and wherefore it doesn't make sense to check
their size directly) are handled properly (i.e. don't invoke click-through on
them)
Attachments: mark message/rfc822 as inline attachments when drag-and-dropping them
GUI: support direct-quoting from visible attachments
GUI: draw a border around attachments

This comes in handy when the attachments are deeply nested; it makes it possible
to orient oneself in them again.
GUI: remove decorators around message/822 widgets

Now that they are wrapped in the generic AttachmentView, it makes little sense
to show more visual headers.
GUI: disable clickthrough for compound types

Previously, inlined compound types (like message/rfc822) required a clickthrough
before they were shown.