Rename read_{ possible_pos => optional_number }

It's not related to position explicitly and can be used for other
parameters as well.
Rename bookmarks.c:add{,_user}_bookmark

Because it's more precise.
Reduce duplication in a couple of :cmd handlers
Extract bookmarks.c:is_user_bookmark() function

Checks whether given mark corresponds to bookmark that can be set
by a user.
Move bookmarks.c:add_mark() function below usages
Store bookmark creation timestamp
Read bookmark creation timestamp from vifminfo

Writing it will be added next.
Write bookmark timestamps to vifminfo file
Update timestamp when bookmark is cleared

This allows removing bookmarks, as recently modified bookmark has
precedence over older one.
Add bookmarks.c:is_bookmark_older() function

Checks whether given bookmark is older than given time.
Improve bookmarks merging on vifminfo update

Now time of bookmark modification is considered.
Rename { add => set }_user_bookmark

Nothing is actually created or added, just modified: all bookmarks
are always there, just might be empty.
Rename { remove => clear }_bookmark

Nothing is actually created or added, just modified: all
bookmarks are always there, just might be empty.
Rename { remove => clear }_all_bookmarks

Nothing is actually created or added, just modified: all
bookmarks are always there, just might be empty.
Rename { load => setup }_user_bookmark

It's more abstract and meaningful in this case at the same time.
Rename set_specmark => set_spec_bookmark

For consistency with set_user_bookmark().
Reduce duplication in visual.c:update_marks()
Document updates related to bookmarks.
bookmark.c's static function renames

For consistency.
Rename { bookmark => bmark } in bookmarks.c

To be less verbose.