Multipart message support as linked list with enumerator support

* Linked list allows to easily strip leading parts in
  intermediate libraries by just returning subsequent message.