Reminder rule running enhancements

- Uses locks to prevent race conditions from creating duplicate reminder instances
- Makes the processing of the reminder case post save signal go to the main celery queue
- Makes the processing of reminder rules go into its own celery queue so that when you save a reminder you don't have to wait for it to finish processing before it returns you to the reminders list. A progress bar also shows the rule update progress for each reminder:
![reminder-progress-bar](https://cloud.githubusercontent.com/assets/1028814/3438871/5f3085de-00d5-11e4-9b2e-38701d3f881c.png)
@czue i think the only thing we'd need to do is make it take a dictionary for the data payload instead of handler_id and then it should be completely reusable