rename class AnnDocuGen to DocumentationGenerator

This is in preparation for future addition of another annotation processor
that will do static code analysis. The documentation generator does some
static checking too, but only reports errors as warnings to explain that
documentation will not be generated for some reason.
rewrite DocumentationGenerator to better conform to the lifecycle

When I first wrote DocumentationGenerator, I didn't fully understand
the annotation processor lifecycle, so I made a few simplifying assumptions
that turned out not to be true. Even if it works correctly in a simple
environment (no other annotation processor present), it is worth fixing,
epsecially since the fix is pretty small and localized.
add a static checker for compile-time error detection

This adds another annotation processor called StaticChecker. Its purpose
is to produce compilation errors in case the @Property annotation is applied
incorrectly. Currently, it detects there errors:

- @Property applied to non-field elements
- @Property applied together with @Inject
- @Property name is invalid (doesn't conform to the required format)

The first one could be removed if @Property was @Target(ElementType.FIELD),
but the other two are important.