css: fix footer

If the browser height was not tall enough, the footer was rendered on
top of other elements.
journals: allow deletion of avatar
journal: remove redundant code

Actually, because we mounted "avatar" into the Journal, even though
"Journal.new" says "avatar: nil", when we do "Journal.new.avatar" we
get an ImageUploader object.
journals: set avatar_type to nil when requested from form

This is an ugly, hacky way to achieve essentially what is a callback on
the model after it is saved. We cannot use an 'after_save' callback on
the Journal model, because 'avatar' does *NOT* belong to the model, and
so the callbacks will never get called when we do a "Remove avatar"
checkbox on the edit form.
journals: put callback in correct sequence

We need to use the 'before_validation' callback, because we need to
validate the 'avatar_type' field with 'validates_with
VldBinaryTypesRange'.

Actually, the validation itself, as far as 'set_avatar_type' is
concerned, is redundant and unnecessary, as the setting of the value is
done purly by the computer and not by the human, on an input dependent
on the human. I.e., 'set_avatar_type' is itself a form of validation.
Still, we leave the validation alone as that can later be expanded to
validate more things.
attachments: basic CRUD operations

The key was to copy/paste code from the Journal model's 'avatar'
feature.