Move libfmactions stuff into separate module, leave nothing in libfm.

It will cease to work at this point though, just because plugin support
in FmFolderView and FmFileMenu isn't implemented yet. Will work after
that implementation.
Module should have module_name[] instead of *module_name.

That is not only extra pointer but also a potential problem. Fix is small.
Use direct comparing instead of strcmp for "inode/directory"

We can just compare FmMimeType with _fm_mime_type_get_inode_directory()
instead of extracting name and doing strcmp() on it. It is much better.
Context menu extensions based on URI scheme.

This re-enables actions, this time from a module.

Note that the change adds a suggestion to call fm_folder_view_add_popup()
each time folder model is changed in the view.
We should not keep parent window referenced in FmFileMenu data.

It is already kept in parent object so we should just access it instead.
Move support for trash:// items in file menu into separated module.
Correct logic of archiver integration in file context menu.

1) If some files are virtual and some native it opened archiver. Incorrect.
Should open only if all are native.
2) In case when we select fileA.zip and fileB.tar.xz it still added 'Compress'.
Incorrect. Should add 'Extract' in such case.
New API fm_file_info_is_writable_directory() and test for R/O file systems.

The API does check for attribute which is set by FmDirListJob or FmFileInfoJob.
Use fm_file_info_is_writable_directory() to update context menus on file or folder.

R/O filesystem should disable Cut Paste Delete Rename and ExtractHere operations.
Disable Copy operation on trash:// file system.
Correct indentations in src/gtk/fm-file-menu.c
Remove items from trash:// folder context menu: Paste, Rename, CreateNew
Add EmptyTrash operation to top of folder context menu for trash://
New module type "gtkMenuMime" extending file context menu on MIME type base.
Trash: folder context menu may contain 'Paste' but file context menu may not.

We can trash files into trash root but cannot trash into some trashed folder.
Update developers documentation (HTML docs).
Corrections needed for HTML documentation on FmXmlFile class.

Added missing statemens into Makefile at docs.
Changed _fm_xml_file_get_type() to fm_xml_file_get_type().
Use blacklist/whitelist in config to limit modules loading.

The format is very obvious - "type" or "type:name". Char '*' should be
escaped. The list is a string list in config file. By default both lists
are empty and that means all modules will be loaded.
A little optimization for config save: compose config in memory then save.

It is reasonable to compose config in memory instead of saving each chunk
into file. That will be a lot faster.
Fix memory leak on modules_blacklist and modules_whitelist config data.