Remove bookmarks:active_bookmarks global variable

It's usage was silly and ugly.
Move bookmark emptiness check to remove_bookmark()

Instead of performing check on calling it.
Remove bookmarks.c:remove_all_bookmarks() function

Removes all bookmarks.
Display error for :delmarks! with arguments
Remove unused cfg.num_bookmarks

It was assigned and changed, but never read.

Also make add_mark() look better.
Simplify bookmark removal

That message would never appear.
Significantly simplify mark <=> index mapping

It might be a bit slower, but that's not really a problem: no one
performs intensive work with bookmarks.
Change is_bookmark_empty() to accept mark name
Change bookmarks:remove_bookmark() to accept mark

This allowed to make bookmarks.c:mark2index() function static.
Return void from bookmarks.c:remove_bookmark()
Remove static list in bookmarks_menu.c unit
Rename is_bookmark() -> is_valid_bookmark()
Name bookmark data structure
Add empty lines to bookmarks.h

For better readability.
Make bookmarks.c:move_to_bookmark() static

And use get_bookmark() as public function instead.
Rename bookmarks.c:{move,navigate}_to_bookmark()
Rename bookmarks.c:{get,goto}_bookmark()

Also fix styling and add a comment.
Use pointers rather than indices in bookmarks.c

This fixes segmentation failure when invalid bookmark name is used
with quote command as a motion.

Reproduced by typing y'<esc> in normal mode.
Merge branch 'fix-mark-selector-segfault'

Fix segmentation failure when invalid bookmark name is used with
quote command as a motion.

Also display error message when :delmarks! is followed by arguments.

bookmarks.c was rewritten quite a bit, there is still some room for
improvement (index2mark() should be removed in the future).