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
Speedup insert/update member table.

The public key is no longer UNIQUE in the database.
Removed systemtap debug functions.
Database upgrade 17 -> 18.

The public_key column of the member table is no longer UNIQUE.  This
removes the index on this column, reducing the bytes written when new
Member instances are created.  The python code is now responsible to
ensure that public_key remains unique.
Add IP and connection type info to logger.
Merge pull request #129 from boudewijn-tribler/bugfixes

Add IP and connection type info to logger.
Merge pull request #127 from boudewijn-tribler/get_member-variant-3

Get member variant 3
Merge pull request #123 from boudewijn-tribler/callback

Moved the majority of _loop into _one_step
Boolean checks for all Dispersy.start() phases.
MainThreadCallback.start should just return True.
set _socket in constructor.
Fixes tool/tracker.py and tool/main.py