Many changes in tasks, synchronization, scheduling

* partially change synchronization and scheduling logic of
  periodic tasks
* create custom UserTask(celery.Task) class to be used by
  backend's list_* functions and probes. it supports caching and
  error handling.
* query memcache from inside gevent-socketio to get cached results
  asap, then put task in celery (if needed) to refresh the cache
  and emit the new results.
honour the keep_fresh param for auto rescheduling
socketio/celery error handling

* don't start list_* for disabled backends in socketio
* add custom error handling in UserTask
* set retries in case of error for or backend list calls and probes
* disable backend after 6 failed task attempts
remove forgotten function