Fix finding paths in the document list on Windows

Finding paths in the tree was not case-insensitive either.
Convert Unix path separators on Windows when opening documents

Unix path separators can occur e.g. when using MSYS.
Windows does not allow filenames to contain Unix path separators so
this should be safe.
Minor code cleanup for document_update_type_keywords()

Fix correctly checking result of editor_lexer_get_type_keyword_idx().
Do not check IS_SCINTILLA unnecessarily (this is covered by DOC_VALID).
Do not use G_[UN]LIKELY macros as this complicates code without any
real benefit (unless in a tight loop).
Fix generating API docs (Windows makefile).

Also fixes a doxygen warning.
Fix auto-saving documents when the current document has no filename
Make document_save_file() show the Save As dialog when necessary

Previously an error message was shown if doc->file_name is NULL.

The Save As dialog is now shown if the document does not have an
absolute path. This is because the user should confirm where to save
the document in this case.

Although this changes plugin API behaviour, it seems the best way to
ensure the Save As dialog is always shown when needed so the user
knows where the document has been saved.
Remove editor_lexer_get_type_keyword_idx() function

It was used only in one place in document_update_type_keywords() which
already did a similar check using the file type before calling this function.

Update HACKING file and very minor cleanup of other code in
document_update_type_keywords().
Use Scintilla's buffer directly for parsing tags
Remove init_doc_struct() function from documents.c

This function was only used from document_create() and most of this code is
not needed since the memset() and g_new0() calls set the memory to all 0's,
which in this case should suffice to (re)set all the members to 0/NULL/FALSE.

Refactor so all the resetting to defaults code is done in remove_page()
only and then only do the required non-FALSE/NULL initialization in
document_create().

Move the remove_page() prototype to the top of the file and various other
minor changes in remove_page().
Add note not to use G_LIKELY or G_UNLIKELY (except in critical loops)

These add noise to the code with little real benefit.
Add Style example for structs, doc-comments
Fix using American spelling of color
Small code cleanup

Use foreach_document() in a few places where appropriate and make
some code more consistent.
Build recent data for GTK ourselves

This prevents GTK of trying to fetch the necessary information like
MIME-type itself, which leads to a significant speedup (> 30%), as
well as using the real MIME-type we use rather than the GIO-guessed
one.
Use file type instead of lexer to decide if type keywords are supported

Not every filetype for a specific lexer implements type keywords even if the
lexer supports it.
Fix or add a few Scintilla styles mappings

Closes #3432760.
Fix various integer sign and size issues
Fix warnings

Fix warnings that appeared with GCC 4.6
js.c:1067:10: warning: variable ‘is_prototype’ set but not used
dialogs.c:173:2: warning: missing initializer
dialogs.c:173:2: warning: (near initialization for ‘value.data’)
sidebar.c:534:17: warning: unused variable ‘doc’
Alter warning fix

Uninitialised GValue does not always work, but is an opaque type so
structure of initialiser isn't known.  Glib 2.30 on has G_VALUE_INIT
to use as initial value.  Fix so if not defined give it the previous literal
value { 0 }, although this leaves the warning, so it is not initialising
the GValue correctly but enough to work.
Adding Mongolian translation