CompletionContext: keep a ref to the mark

gtk_text_mark_get_buffer() is called in dispose(), but if the buffer is
already destroyed, the mark will be destroyed too if we don't keep a
ref.
File loading and saving

New public classes: GtkSourceEncoding, GtkSourceFileLoader and
GtkSourceFileSaver.
There are also new properties in GtkSourceBuffer.

https://bugzilla.gnome.org/show_bug.cgi?id=721016
Move some enum types to gtksourcetypes.h
build: rename helper library private -> core
encoding: comment unused functions
GtkSourceEncoding documentation
Some code improvements
GtkSourceFile, the come back
Move mount_operation_factory to GtkSourceFile
Add missing GI annotation
FileSaver: add setting: ignore invalid chars
File saving: check if the file is externally modified

Store the modification time in GtkSourceFile, and update the value on
each file loading and saving.
FileSaver: flags instead of boolean properties
FileSaver: use IGNORE_MODIFICATION_TIME flag
Make GtkSourceMountOperationFactory introspection-friendly

There was a GI warning.
Make load_async() and save_async() introspection-friendly
Make gtk_source_file_set_location() public

It will be used by gedit_document_set_location(), which is used by the
file browser plugin when a file is renamed.
Make BufferOutputStream more robust after dispose

Some code can be executed after dispose(), like
gtk_source_buffer_output_stream_close(). After dispose(), the
source_buffer is NULL.
FileLoader: update GtkSourceFile location directly