More unittests.
Moved the majority of _loop into _one_step

Moving this code allows us to call _one_step whenever a single task
should be executed.  This allows _one_step to be called from the
Callback.call(...) method, fixing the problem with call not being able
to allow other tasks to run when called from the callback thread.  See
the test_call_priority unittest.
Better fix for UnboundLocalError bug.
Removed a None entry from the _requests tuple.

At some point one entry in every tuple in _requests was no longer used
and set to None.  This has now been properly removed.
Reduce duplicate code.
Bugfix: use the mirrors to obtain the old tasks.

The main variables containing tasks were cleared a few lines above to
avoid new tasks from being registered.
Callback.call now also allows other tasks to run.
Some exceptions do not have exc_info available.
Merge remote-tracking branch 'remotes/upstream/devel' into callback

Conflicts:
	callback.py
	tests/dispersytestclass.py
Merge pull request #123 from boudewijn-tribler/callback

Moved the majority of _loop into _one_step