smart choose of dates for calendar in challenge#show view
Validate challenge dates
when updating a challenge, remove milestones outside start_date and end_date
fix challenge current_streak and longest_streak when there is no milestones