feat: flatten non-BOM artifacts

This change introduces a new execution of the Flatten Maven Plugin for non-BOM modules, aimed at simplifying their published POMs while preserving important metadata and build integrity.

### Key changes

* Applies `clean` mode, removing most optional POM elements.
* Retains key elements:

  * `<name>`, `<description>`, and `<url>` are expanded to preserve meaningful metadata and prevent undesirable URL inheritance (i.e., appending `artifactId` to the parent URL).
  * `<license>` is preserved in each module for clarity and utility.
* Keeps the `<parent>` element so modules continue to inherit metadata and `dependencyManagement` from `log4j-bom` and their direct ancestors.
* `<properties>` are removed, but `<dependencies>` and `<dependencyManagement>` are retained with interpolated values to avoid unresolved variables in the flattened POMs.

### Differences from the `clean` mode

* Keeps `name` and `description` per module to aid discoverability.
* Delegates all contact and project metadata (organization, developers, mailing lists, SCM, issue tracker, CI config, etc.) to the centralized `log4j-bom` POM.
* Preserves `dependencyManagement` sections by interpolating versions, rather than removing them.
* Retains non-transitive scopes (`provided`, `test`) to expose compile/test-time dependencies, even if consumers don't require them.

This flattening strategy reduces noise in published POMs while maintaining enough structure for clarity and downstream tool compatibility.
3 files changed