Makefile: substitute PORTAGE_BASE_PATH during install.

This is the first step towards disjoining Python module install from
binary install.
self-update: copy only relevant packages from PORTAGE_PYM_PATH.

If Portage is supposed to be installed alongside other Python packages,
it is important that it only tries to backup its own packages rather
than whole site-packages directory.
portage.const: make PORTAGE_PYM_PATH point to real package tree.

Instead of using the canonical location based off PORTAGE_BASE_PATH, use
the root of loaded Python packages directly.
Append .py to runTests so that it could be installed.

As a result, we now are able to run tests against installed Portage.
Rename '__test__' to '__test__.py' to easily install it.
tests: fix running tests on installed copy of Portage.

This involved adding installation paths to configuration files
conditionally and letting repoman fetch metadata.dtd.
tests: fix running import & compile tests on installed copy.
Install Python modules using setup.py.
travis: test installing & running tests against installed copy.
setup.py: support installing conf files to sysconfdir.
setup.py: install logrotate.d file.
setup.py: install /usr/share/portage configs.
setup.py: install scripts.

As a matter of difference, we only install non-bindir and non-sbindir
scripts into /usr/lib/portage/bin.
tests: support using /usr/bin & /usr/sbin installed tools.
setup.py: install docs.
setup.py: install manpages.
setup.py: change_root() only when root is specified.
setup.py: support building & installing docs.
setup.py: introduce a proper 'clean' command.

This removes any need for doc/Makefile now.
setup.py: support running tests.