Adds outline flag to doxygengroup directive.

Although already been documented, the outline flag has not been
implemented to the doyygengroup directive. This commit adds
functionality for that. Additionally, it fixes
`create_group_render_filter` to hide the content of structs as well.
Fixes minor code issues.

- a forgotten variable definition
- duplicate flag entry
Tweak filter implementation and add outline docs

The implementation is just style.

The docs cover an example of outline working as expected.
Fix class & namespace docs to cover protected-members

And fix doxygengroup/namespace typo.
Add :outline: to namespace documentation with example

And fix up the warning message.
Merge class & struct implementations

As they should be basically the same thing. This introduces public,
private, protected & undoc control to structs.

We copy and paste the class documentation to the struct page and do a
find and replace.

We also add example struct sourced files.
Improve innerclass filter

So that innerclasses respond properly the :members: option having
specific members listed.

Otherwise we get all the public classes when specific members are being
listed as it just detects the 'members' option being there.

We also have to add a code path to pass the class name down to the
members filter as innerclasses are listed in the full namespaces and
outer classes. ie. testnamespace::StructClass::PublicClass, rather than
just PublicClass.
Merge branch 'addgroupoutline'