add another module with examples

This adds a new Maven module "example2" with another set of examples. It will
be used to show the behavior of AnnDocuGen in a set of new situations that
were not envisioned previously (private or abstract classes, inheritance).
In addition to that, it will also be used to show how to generate unified
documentation of more Maven modules/projects (documentation merging).
don't document private or abstract classes

Classes that are not "public" or are "abstract" should not be documented.
This is handled on the view-model level. On the model level, all encountered
classes must be kept, as they will be needed for documenting inherited
properties and dependencies (and for documentation merging, too).
document inherited properties and dependencies

For usability, it is important that the documentation shows inherited
properties and dependencies. This is solved on the view-model layer, which
required adding a view-model wrapper over DocumentedProperty (a wrapper for
DocumentedDependency was already in place). The only change in the model layer
was an addition of a parent type to DocumentedClass.

In the generated output, inherited properties and dependencies are marked with
a label "Inherited". That could possibly be a link to a documentation of
the class from which the property/dependency is inherited, but these parent
classes don't necessarily have to be documented.
serialize documentation data to JSON

This adds a JSON serialization of raw DocumentationData and processed
DocumentationDataView to the generated files. This also means adding
a Gson TypeAdapterFactory for the Optional<T> type and some renaming.
add a new goal to the Maven plugin for adding JSON files to build output

The Maven plugin has a new goal "resources" that copies AnnDocuGen-generated
JSON files from the AnnDocuGen output directory to the build output directory,
so that these files are also packaged in the JARs that Maven produces.
add a new goal to the Maven plugin for AnnDocuGen aggregation

The Maven plugin has a new goal "aggregate" that looks through all direct
dependencies (i.e., not transitive) and collects all the AnnDocuGen-provided
data (raw-data.json). Once all dependencies are processed, aggregate
documentation is generated.

An example project "examples-dist" is provided that depends on "example"
and "example2" projects. It produces a zip file with all the dependencies
and an aggregate AnnDocuGen documentation.