Add src_{prepare, configure} and pkg_pretend checks to repoman

EAPI 0/1: Warn if src_configure/src_pretend used
EAPI < 4: Warn if pkg_pretend is used
Fixes bug 379491.

Acked-by: Mike Frysinger <vapier@gentoo.org>
Test for read-only filesystems, fixes bug 378869

If any read-only filesystems need writing, bail out and display a
useful error message.

v2: Reformat, add a function to return an appropriate read-only checker
for the operating system, so that this can be extended to other OSes.

v3: minor formatting tweaks from bernalex, including use os.path.join()
instead of string concatenation

v4: Update copyright header, change the code in rochecker to open with
io.open in order to not break on non-ascii characters as reported by
Arfrever. Change get_ro_checker to use a dict as suggested by vapier.

v5: Fix comment format as requested by vapier.

v6: Change linux_ro_checker to use set.intersection instead of the
longer check-and-append system as suggested by vapier.

v7: rename rochecker -> writeable_check
Bug #500030: emirrordist: Support directory in --whitelist-from argument.
portage.tests.util.test_getconfig.GetConfigTestCase.testGetConfigSourceLex(): Embed contents of test files in test function itself.
_do_global_updates: unify duplicated message header
various pylint clean ups

Hopefully should be no functional changes here.
test_compile_modules: ignore unreadable files/dirs

Some tests will create paths in the tree that are unreadable by the
current user (so as to test portage behavior in that case).  Have
the compile test not barf when it finds these things.
Rename a private function.
Check presence of .portage_not_installed file instead of .git directory
to allow using local files also when using Portage from unpacked tarball.
Use local dispatch-conf.conf and make.globals when using Portage from working copy or unpacked tarball.
Update dates in recently changed files.
Add resolver/package_tracker
Replace _slot_pkg_map and some tree dbapiS with _package_tracker
Replace mydbapi with _package_tracker
Replace _slot_collision_info with _package_tracker
Replace _slot_collision_nodes with _package_tracker
Package.__str__: show slot/sub-slot
format_unmatched_atom: Pretty printing for unmatched atoms

This is a split out from the slot conflict handler to be
used in other places.
Some small output fixes for the slot conflict handler

* unmatched atom printing now uses ^^ markers
* unmatched atom printing properly supports sub-slots
* Fix spurious "no parents" message caused by AtomArg parents
Add digraph.discard