Refactoring: use shared instances, don't repeat string literals
Fix part numbering for parts which are children of top-level multiparts

The old code would occasionally produce results like ".TEXT" which are obviously
broken.