Remove declaration of inexistent function
Introduce bg_jobs_[un]freeze() functions

* Performs preparations necessary for safe access of the jobs list.
  Effect of calling this function must be reverted by calling
  bg_jobs_unfreeze().  Returns zero on success, otherwise non-zero
  is returned.

* Undoes changes made by bg_jobs_freeze().
Use bg_jobs_[un]freeze() in show_jobs_menu()
Fix typo in BG_UNDEFINITE_TOTAL define name

Also add a comment for it.
Use NO_JOB_ID constant in background.c
Introduce BG_INTERNAL_TASK_PID constant

Special value of process id for internal tasks running in background
threads.
Move active jobs presence check to background.c
Move vifm termination code to vifm.c
Change cfg.vim_filter to status_t.file_picker_mode

This is a runtime setting that depends on arguments rather then
configuration option.  Also previous name was misleading.
Move quit from file picker mode to vifm.c

Also:
 * rename use_vim_plugin() to vifm_return_file_list();
 * add some comments;
 * rename parameters.
Move code that restarts vifm to vifm.c
Merge branch 'cleaner-code-of-jobs-menu'

* Use less magic numbers related to background things.
* Reuse existing logic for background list freezing in other modules.
* Move finalization code to vifm.c.