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.

This will fix exceptions occurring when Dispersy is running on the
main thread, Dispersy.stop() is called, and packets still arrive.  This
currently happens frequently with DAS experiments.