journal: _form: show image as preview

We have to copy/paste the 'bootstrap_form_for'-generated output code to
customize it.
journal: avatar: add thumbnail

This is currently broken in the 'journals/_form.html.slim' file b/c the
route that gets generated from '#avatar_url' gets intercepted by
'journals#avatar', which always sends back the original 'avatar' file,
not the thumbnailed version. Fix pending...
refactor '#avatar' method into separate GridfsController

The idea is that this controller will handle everything related to the
GridFs store, regardless of model or mount option.
carrierwave: change cache_dir to something more explicit

This more human-friendly, as 'uploads' is too close to just 'upload'.
journal: _form: only show image if avatar is set

Interestingly, for the '#new' method, '@journal' is set to
'Journal.new', and in rails console, the #avatar field is set to nil.
However, in actual practice, it is set to an empty string. This is why
we call the '#blank?' method instead of '#nil?'.
journal: skip setting content_type if no avatar file
journals: clean up index view
journals: show: avatar: show if file is non-nil