don't check template headers for header guard

it is almost impossible to get right and there is no reason for it to be right
Split up doxygen runs into one per module

This makes testing a particular documentation change much, much faster, so hopefully people will actually look at it.

close #357, close #366