fetcher: quote filenames given in commands

Filenames were given as-is to shell commands. This causes problems
when names contain characters which have a special meaning. E.g. when
having a local systemd unit

| SRC_URI = "file://etc-machine\20id.mount"

the fetcher failed with

| NOTE: Unpacking .../etc-machine\20id.mount to ...
| cp: cannot stat `.../etc-machine20id.mount': No such file or directory

Patch uses the pipes.quote() function to apply shell escaping.  These
changes are not really complete; they are modifying __init__.py only
but most fetchers need similar adaptations too.

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
runfetchcmd(): allow to use a sequence as cmd

Patch removes the explicit 'shell=True' from the bb.process.run() call
and modifies the environment directly.  This allows to use a sequence as
the cmd option which in turn, removes the need for quoting filenames
manually.

Unfortunately, modifying only runfetchmod() does not allow code like

  runfetchcmd([ud.basecmd, 'remote', 'add', ..., repourl])

because 'ud.basecmd' (expanded e.g. from ${FETCHCMD_git}) might contain
a command plus shell escaped options.

To cope with such situations, a runfetchcmd2() function was added
which quotes the arguments but takes the cmd as-is.

Having basecmd splitted off from cmdline string reduces information
printed out by check_network_access().  To retain the old behavior, an
optional argument was added which allows to specify the basecmd.

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
fetch2/git: quote arguments

Patch makes sure that arguments given to 'git' are quoted properly.  It
uses the newly added runfetchcmd2() function or quotes them manually
when special shell functionality (pipes, io redirections) are used.

Signed-off-by: Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
added BB_SVN_TUNNEL variable

It allows to rewrite svn:// uris for example to svn+proxy://.  This
makes it possible to use a 'proxy' tunnel which pipes the connection
through a https proxy.
export some more proxy related environment variables
do not bail out on SkipPackage exceptions

set __SKIPPED instead of
import 're' module by default
do not execute the 'make doc' target
detect and ignore duplicate inherits
install ply + progressbar modules
added backward compatibility for 'git remote add'
data: give out configuration hash data

this helps to debug problems
bitbake: added -j option

This patch adds an -j option which overrides/sets BB_NUMBER_THREADS.
For some use cases like '-c fetchall' it might be useful to modify
temporarily the number of parallel running tasks without editing
bitbake.conf.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
siggen: dump sigdata content
fetch2: try PREMIRRORS when calculating latest_revision
ui/knotty: give out start time of task

For long running tasks like compiling qt it might be interesting to know
when the task has been started.  Patch prints this information by using
the %X modifier (locale dependent presentation of time without date).

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>
build.py: fire TaskFailed with same environment as TaskStarted

The task-failed event handler can require task specific data or data
set by the corresponding task-started event (e.g. metrics data).

Patch shuffles around some bits of existing code so that this assumption
holds.

Signed-off-by: Enrico Scholz <enrico.scholz@sigma-chemnitz.de>