Customize JAR manifest entries with Git info

In the generated JAR manifest, we set the following to more accurately
identify the version a JAR was built from:

* Implementation-Version - instead of the default of ${project.version}
    we store a `git describe`-like value.
* Git-Commit-Id - the full commit ID of the current commit.

If the JAR was built on a working copy with uncommitted/untracked
changes then the above values are suffixed with `-dirty`.
If the working copy is not a Git repository then the values are left
empty.

Additionally, the Implementation-Title attribute is set to
${project.artifactId}. This makes it possible to scan for a component's
manifest by matching its (groupId, artifactId) with a manifest's
(Implementation-Vendor-Id, Implementation-Title).
Upgrade to maven-scm 1.9
Define base site generation configuration

* Use reflow-maven-skin
* Use PlantUML to generate diagrams if any are defined in src/site/plantuml
* Define default site deployment location at repo.pcmall.com
[maven-release-plugin] prepare release pcm-parent-4
[maven-release-plugin] prepare for next development iteration