Moved thread name parameter from start() to __init__().

This move is necessary to allow dispersy to start() the callback,
while not letting dispesy choose the name of the thread.

This patch also removes the prctl import that was used to prefix
"Tribler" to the thread name.  prctl is not part of standard python
hence I prefer not to use it, unless necessary.
Adds open and close methods.

Code that actually performs tasks in the database (open connection,
create tables, version check) has all moved from from __init__ into
open.

This move is necessary to allow dispersy to initialize the database
while the callback thread has not started yet.  The database will be
opend, on the callback thread, during dispersy.start.
Adds open and close methods.

These methods are necessary now that dispersy has start and stop
methods.
Adds a Dispersy.start method.

The Dispersy.__init__ method can no longer perform any tasks, aside
from creating memory structures.  All tasks (such as database access)
are delayed until Dispersy.start is called.
No longer perform the bootstrap nodes test during normal unittest runs
Murphy says our stop wouldn't always work.

Incoming data can cause communities to be loaded after we just unload
them.  For safety we will unload any 'accidentally' loaded communities
again.