Switch to :members: & :private-members: from :sections:
Simplify group content filter
Implement helper API for filter objects

The filters were getting a little complex & ugly to declare as nested
object declarations so we attempt to wrap a nicer API over the top by
overriding logical binary operators and implementing properties which
return accessor objects.

Hopefully more readable. Certainly gets the line count down a bit and
its also more fun.
Fix ups for the filter improvements

I forgot the __or__ method and apparently __contains__ has to return a
True or False so we switch out to a is_one_of helper method to achieve
the same results.
Remove :members: option from group

It doesn't seem to fit with the use case. If it is an option, what does
it mean? Public members of classes? All members of the group? So we
remove it and assume that groups will always want to display all public
members.
Fix & make node_type property more explicitly named

Rather than using 'type' because it is a few less characters and risk
confusion with an actual 'type' attribute should it exist somewhere.

We also switch to querying the 'name' attribute rather than the
'node_name' attribute which is fixing a mistake I made in the
translation to our hopefully cleaner API.
Switch from if-statements to and/or combos

Which may or may not be more readable. Actual if-statements would be
more readable, but we can only use IfFilter objects which don't read so
well. Perhaps this reads a little better.
Add filter for sectiondef description

This was in here before we started rewriting it. I'm not sure of an
example which exercises this functionality but I'm putting it back as
best I can.
Merge branch 'members'
Add undoc-members option to doxygenclass directive

It is a little more complex than repeating the members and
private-members options as the undoc-members option intersects with the
behaviour of the other two so we design it to be 'and-ed' against the
result of them.

The default state is to block any undocumented members. If specified
then we let everything through.
Separate member filters in individual functions

To clarify their construction a little and leave more room for
documentation.
Fix doxygengroup documentation

I failed to update it when changing away from :sections:.
Add documentation for undoc-members option
Reorganise directive docs to be alphabetical

It was a pretty random order before. This makes sense. We group the
auto-directives with the pairs.
Convert breathe_default_sections conf variable to members

We rewrite it to deal in terms of our new members options rather than
the sections concept. This matches the autodoc_default_flags option for
Sphinx autodoc:

    http://sphinx-doc.org/ext/autodoc.html#confval-autodoc_default_flags
Add and document undoc-members flag for doxygengroup

We just let it pass down to the creation of the members filter for the
classes and do its stuff.
Split out c_kind filter and add members to doxygengroup

We split the filtering of top level C-language kinds of sectiondefs out
to a separate filter so they are no longer considered part of the
'public members' which is correct as they are top level and not part of
a class.

Then we add a 'members' option to the doxygengroup and stop it being
added by default so that users can control the inclusion of public
members in classes in the group output.
Add protected-members option to class & group directives

We refactor the create_private_members_filter method so that it can do
either private or protected and then call that twice.

A little more formatting and we're there.
Merge branch 'undoc'
Filter innerclasses as well

We add a new filter builder method to constuct a filter for innerclasses
(public, protected and private) and 'and' it into the class & group
content filters.