Expose clean interface for config module

Sets up the __all__ list and creates dummy methods to allow static code
analysis tools to work properly.
Separated module for paths

Breaks the logic for computing paths into its own module, since this is
something that is needed in random places all across the add-on.

Some care has been made to correctly handle symlinks, but edge cases
might exist.
Begin use of paths.relative()

This might avoid a possible encoding bug on some file systems (whatever
necessitated the hotfix need for the 8.1 release). Eventually, all path
formulation needs should go through this function rather than using the
os.path.join and os.path.sep.join functions directly.