Add include guards everywhere

If we expose not only all the internal methods and functions, but also
the very file they're in, we'll be stuck forever, unable to improve or
refactor anything.

The guards means that only naemon gets to include naemons specific
header files, and only non-naemon code gets to include naemon.h. Naemon
devs can update naemon code, without angering module devs when they
change things. At least not as often.

Tests can be a bit of a special case - I'd expect unit tests to follow the
naemon convention but perhaps not integration tests. Alas, our tests
have no structure or purpose, so they get to work within the confines of
all the other naemon code.

Obviously, this "block" is easy to get around - just define
NAEMON_COMPILATION - but if you do that, you get to keep both pieces
when your code breaks.

Signed-off-by: Robin Sonefors <robin.sonefors@op5.com>