setting for optionally syncing on every scheduled task execution

By default beats only syncs its in-memory store of tasks' "last run time" to the persistent store (in my case djcelery database backend, but any persistent store) every 3 minutes. In this model, there are a variety of cicrumstances in which the 'last run time' can fail to get persisted to the database. For instance, if two jobs run at roughly the same time, job A finishes first, detects that the sync interval has been > 3 minutes, syncs to DB. Then job B finishes 1ms later, it sees that everything has been synced within the last 3 minutes and does NOT sync to the DB. Now if anything causes the server to die without properly sending a TERM signal, the in-memory record of the last run time will not be sync'ed to the DB. Then the job will re-run on restart because there is no record of it having executed.

This pull request is a very simple fix for this issue - it simply introduces a setting that, if set, will cause Scheduler.should_sync() to return True.

I also renamed a unit test that has a confusing name to better indicate what it tests.