Use 'with file' more.

This helps to minimize ResourceWarning triggered by ^C with python3.
Add run_main_scheduler helper function.
Use run_main_scheduler where possible.
emerge --select: add -w short option
Use ctypes in subprocess for bug #448858.

Isolate ctypes usage in a subprocess, in order to avoid potential
problems with stale cached libraries as described in bug #448858,
comment #14 (also see http://bugs.python.org/issue14597).
AsynchronousTask: add _async_wait method

For cases where _start returns synchronously, this method is a
convenient way to trigger an asynchronous call to self.wait()
(in order to notify exit listeners), avoiding excessive event
loop recursion (or stack overflow) that synchronous calling of
exit listeners can cause.
EventLoop.iteration: no IO blocking if possible

Avoid blocking for IO if there are any timeout or idle callback events
available to process. This will prevent starvation of the idle
callbacks, which are much more common since commit
a3100be184ba1cac2f672f0a1cadcf01690c6d3f. We don't want these idle
callbacks to be delayed by long periods of IO blocking.
AsynchronousTask: _async_wait is thread-safe
_LockThread: use thread-safe EventLoop.idle_add()
emerge --depclean: clarify unsatisfied atoms

If the atom is unsatisfied due to a USE dep that's only visible in the
unevaluated form, then display the unevaluated form.
test_echangelog: sync year with UpdateChangeLog

The code has to be in sync in order to prevent erroneous test failures
triggered by new year's day timezone differences.
AsynchronousLock: override _async_wait_cb
runtests.sh: summarize results for all versions
Revert "AsynchronousLock: override _async_wait_cb"

This reverts commit 83cfc04df383b56592b89f1dc58428c0e8d09925.
This override could be bad if the base class needs to call _async_wait
for some reason.
repoman: handle EAPI 5 usex, bug #449678
repoman: usex check 4-python and 4-slot-abi
use(): fatal missing IUSE in EAPI 5, bug #449708
repoman: tell user which mirror identifiers contain SRC_URI

before the patch:
    $ repoman full

    RepoMan scours the neighborhood...
      metadata.missing              1
       dev-haskell/qthaskellc/metadata.xml
      SRC_URI.mirror                1
       dev-haskell/qthaskellc/qthaskellc-1.1.4.ebuild: 'http://download.berlios.de/' found in thirdpartymirrors

after the patch:
    $ repoman full

    RepoMan scours the neighborhood...
      metadata.missing              1
       dev-haskell/qthaskellc/metadata.xml
      SRC_URI.mirror                1
       dev-haskell/qthaskellc/qthaskellc-1.1.4.ebuild: 'http://download.berlios.de/' found in thirdpartymirrors: 'mirror://berlios'

Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
repoman: improve thirdpartymirrors output
FakeVartree: split _apply_dynamic_deps method

This will eventually be used for parallelization of aux_get/regen
processes.