Add classes to write out the effective-pom beside the copied regular pom

Performs similar actions to the help:effective-pom goal to produce a pom xml file from the internal model used in the build.
This effective-pom reflects the changes made by the ModelBuildingModifiers.

Output is done in a way that works in cases of clean goals being combined with build goals (i.e. if a build is run via  mvn clean install  or similar), at the expense of leaking the output pom file in the temp directory of the system (lots of builds could possibly build up the various effective-poms over time).
Eliminating this leakage is difficult, as we assume the system is shared, and multiple builds could be run at the same time. No post-build cleanup functionality seems to exist in maven.