Merge in some changes from trunk

svn path=/branches/bitten/tools/quickbook/; revision=41340
A large checkin (mea culpa)!

regression/src/failure_markup.py:
regression/src/bitten_reports.py:
regression/src/collect_and_upload_logs.py:
regression/src/run.py:
* factor Bitten reporting into a separate module
* Stop hacking the target ids to find source file paths; use a
  slightly more principled approach instead
* support the use of failure markup to ignore test failures

regression/src/test_results.py:
* readability/maintainability improvements:
  * replace tuple representation of build actions with instances of an
    Action class
  * Renamed various attributes to make them more meaningful
* stop hacking the target ids to find source file paths; use a
  slightly more principled approach instead
* add an extremely crude test of this module

regression/src/recipe.py:
* begin taking the toolsets from the slave.ini file

regression/src/regression.py:
* default to no logging at all
* support the use of failure markup to avoid running tests at all for
  particular toolset/library combinations, and to determine failure
  status for individual libraries
* Idiomatic string slitting and joining

build/v2/build-system.jam:
* represent project ids when XML dumping targets
* represent leaf targets ("sources") in the dumped XML dependency graph
* update action rule signatures to conform to the new protocol

build/v2/tools/testing.jam:
* group all XML-dumped tests under a <tests>...</tests> tag
* distinguish a test's human-readable name from its raw target name in XML
* record the project root for each dumped test

jam/test/test.jam:
jam/doc/bjam.qbk:
jam/doc/history.qbk:
jam/src/execnt.c:
jam/src/make1.c:
jam/src/jam.c:
jam/src/execcmd.h:
jam/src/variable.c:
jam/src/output.c:
jam/src/output.h:
jam/src/strings.c:
jam/src/build.bat:
jam/src/build.jam:
jam/src/execunix.c:
* Merged recent changes from trunk

svn path=/branches/bitten/tools/quickbook/; revision=41833