-
Instead of each top-level IMAP folder being a FolderRoot object, then children of that being FolderPath objects, this makes FolderRoot an "empty" FolderPath, so that both top-level and descendant folders are plain FolderPath objects. Aside from being more technically correct, this means that empty namespace roots can now be used interchangably with non-empty namespace roots (addressing issue #181), and custom folder implementations no longer need to provide their own trivial, custom FolderRoot. To support this, a notion of an IMAP root and a local root have been added from which all remote and local folder paths are now derived, existing places that assume top-level == root have been fixed, and unit tests have been added.
5a22e8e4