regress: Fix regress_test_versioning

https://bugzilla.gnome.org/show_bug.cgi?id=679981
regress: Use G_DEFINE_INTERFACE

https://bugzilla.gnome.org/show_bug.cgi?id=679981
docs: make gtkdoc-mkdb ignore cmph doxygen comment blocks.

When building g-i reference documentation, girepository/cmph/*
was being scanned for GTK-Doc comment blocks by gtkdoc-mkdb.
Unfortunately, cmph uses doxygen comment blocks which also
start with /**. This patch prevents gtkdoc-mkdb from complaining.
docs: remove reference to object_grouped.sgml.

This most likely sneaked in as a copy pase error from GTK+
reference docs as g-i never had a object_grouped.sgml...
docs: don't mark non GTK-Doc as being a GTK-Doc comment block

This patch silences another gtkdoc-mkdb warning.
docs: ignore GTK-Doc generated output
tests: ignore g-ir-doc-tool generated output
giscanner: use collections.OrderedDict when available

Starting with Python 2.7 we can use the batteries included
collections.OrderedDict class. However, configure.ac claims
we still support Python 2.5 and 2.6, so don't remove our
custom odict implementation just yet...
giscanner: remove duplicate "os" import...
giscanner: remove unused variables
giscanner: implement DocOption() in terms of odict instead of dict

The order of the "options" key/value pairs returned by
DocOption().all() should be identical to the order in
which they where stored. Hence replace the dict usage
with odict.
giscanner: improve wording of inline documentation
giscanner: use "if in [a, b]" instead of "if == a or if == b"
giscanner: make it clear DocOptions() also has a position attribute

Lost a couple of hours hunting down a failed test case (from the
annotationparser work about to land) due to this not being clear...
giscanner: use re.match() instead of re.search()

From Python's documentation:
Python offers two different primitive operations based on
regular expressions: match checks for a match only at the
beginning of the string, while search checks for a match
anywhere in the string (this is what Perl does by default).

The different behavior between match() and search() doesn't
matter in our case and conceptually we are checking if a
piece of text matches a certain pattern, so match() is a
better fit.
giscanner: add AnnotationParser tests

The tests in giscanner/annotationpatters.py only test the regular
expression programs used when parsing GTK-Doc comment blocks but
do not test the structure of the resulting "parse tree".

This patch adds 193 GTK-Doc comment blocks and the expected
results AnnotationParser should return (with it's current level
of understanding of GTK-Doc comment block syntax). These are
compared by tests/scanner/annotationparser/test_parser.py which
complains with a diff on failure.
giscanner: move unittests from giscanner/annotationpatters.py...

... to tests/scanner/annotationparser/test_patterns.py
giscanner: construct list of possible tag names for TAG_RE from _ALL_TAGS...

... instead of having a secondary hard-coded list. This results
in the removal of giscanner/annotationpatterns.py to prevent a
circular import.
giscanner: treat the GTK-Doc Description: tag like any other tag

and add paragraph break tests.
giscanner: Correctly detect invalid GTK-Doc comment block end markers