Reworked internal exception raises that emit
a rollback() before re-raising, so that the stack
trace is preserved from sys.exc_info() before entering
the rollback.  This so that the traceback is preserved
when using coroutine frameworks which may have switched
contexts before the rollback function returns.
[ticket:2703]

(cherry picked from commit 0bb05ffdf066ba108883a0a4165cb11894fb3d88)

Conflicts:
	doc/build/changelog/changelog_08.rst
	lib/sqlalchemy/engine/base.py
	lib/sqlalchemy/engine/default.py
	lib/sqlalchemy/engine/result.py
	lib/sqlalchemy/util/__init__.py
	lib/sqlalchemy/util/langhelpers.py
python2.5 fix

(cherry picked from commit 835f0abb59c10c1204884df1a19f088cf55d49d7)
- remove reference to _exc_info before reraise to reduce cycles

(cherry picked from commit 6d93918b9b68202fdcb1f76f865efd5cde154963)
- Fixed an import of "logging" in test_execute which was not
working on some linux platforms.
[ticket:2669]

(cherry picked from commit abd9f52ade78c737571be69f21dba384be3edf4e)

Conflicts:
	doc/build/changelog/changelog_07.rst
	lib/sqlalchemy/__init__.py
Prevent TypeError when `python setup.py test`

Hack to prevent "TypeError: 'NoneType' object is not callable" error
in multiprocessing/util.py _exit_function when running `python
setup.py test` (see
http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html)

Workaround for #2782