Update screenshots older than 15 minutes

- Check if screenshot should be updated each time it is loaded.
- Have upload_screenshot call generate_screenshot if the temporary·
  screenshot does not exist when it is called.
- Update screenshots older than 15 minutes.
- Move generate screenshot logic out of Webpage model and change
  it to use an after_create callback to create a new screenshot the
  first time.