self-update: Copy only relevant packages from PORTAGE_PYM_PATH

Update the self-update code to copy only packages relevant to Portage,
to avoid copying other packages when Portage is installed alongside
them.
portage.const: Make PORTAGE_PYM_PATH point to the real package tree

Change PORTAGE_PYM_PATH to use real package tree path rather than one
based on PORTAGE_BASE_PATH.
tests: Append .py to files that need to be installed

Append .py to the runTests script and __test__ files so that they could
be easily picked up by setup.py.
tests: Fix running on installed copy of Portage
Install Portage using setup.py
travis: Use setup.py for running tests
Subst VERSION in docbook.
QA: Add a set of checks for bash-completion files

Add checks for common mistakes when installing bash completion files:
legacy directory, incorrect naming, missing aliases, deprecated 'have'
function.

Changes in v2:

- silenced output (error) when sourcing completion files,

- faked _have() to enable all conditional completions in the tested
  files.
Disallow helpers in global scope in EAPI 6

Disallow calling most of the ebuild helpers in global scope since they
are meaningless in that context. Most of them are also prohibited by PMS
for all EAPIs, so EAPI 6 sounds like a good moment to finally enforce
that restriction.
Merge branch 'qa-bashcomp' into all-in-one
Merge branch 'eapi6' into all-in-one
Merge branch 'all-in-one' into all-in-one-plus-setup.py
Merge branch 'new-install' into all-in-one-plus-setup.py

Conflicts:
	.travis.yml
	setup.py