start SensorListener before reading steps variable
added IS_RUNNING flag & re-added "restart every hour" workaround
switched from BroadcastReceiver to AppWidgetProvider
more strings extracted