SearchContext: weak ref to the buffer
SearchContext: weak ref to the buffer

The strong ref prevented the buffer from being finalized.
Now the search context has a weak ref to the buffer, and vice versa.

Due to the weak ref, we now have to keep a reference to the tag table,
to be able to remove the found_tag in dispose(). A tag table can be used
for several buffers.

To create a search context, we have to call
gtk_source_search_context_new(), and pass the buffer as an argument.
Another possibility would have been:
- gtk_source_buffer_create_search_context()
- gtk_source_buffer_remove_search_context()
In this case, the buffer can have a strong ref to the search context,
since the search context is explicitely removed from the buffer. But
it's too late for doing that, we have to live with the current API.

GNOME/gtksourceview,GNOME/gtksourceview,cburschka/gtksourceview,cburschka/gtksourceview,uajain/gtksourceview,cburschka/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,cburschka/gtksourceview,cburschka/gtksourceview,cburschka/gtksourceview,uajain/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,GNOME/gtksourceview,cburschka/gtksourceview,cburschka/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,uajain/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,GNOME/gtksourceview,cburschka/gtksourceview,GNOME/gtksourceview,GNOME/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,GNOME/gtksourceview,GNOME/gtksourceview,uajain/gtksourceview,uajain/gtksourceview,GNOME/gtksourceview,cburschka/gtksourceview,GNOME/gtksourceview