Adds forge maven plugin and documentation.
Tweaking site documentation.
Fixes two broken links in site docs.
Fixes NPE when the validation container manager does't find a handle.
Gets rid of old maven test harness
Adds (and improves) javadoc for the forge-api
Better start/stop handling of test server
Updated site documentation
Coherent use of FileFilter when traversing a module.

The forge code used a default regular expression to exclude unwanted
files from the build and from checksum calculations. That approach
was not flexible enough for the publisher since the publisher has
a configurable target directory that needs to be excluded. This commit
changes the use of the default pattern so that we instead use a
FileFilter everywhere. Passing null will result in a default FileFilter
instance which in turn depends on the old default pattern.
Creates separate Package step.

One step to validate, one step to build (create the tar.gz bundle)
and one step to publish maps better to Maven lifecycles than just
validate and publish.
Adds Maven packaging type 'forge-module'
Adds implementation for Semantic Versioning 1.0.0 to forge related code

The Forge Publisher should enforce the SemVer 1.0.0 spec as described
here http://semver.org/spec/v1.0.0.html. It should also enforce that
module dependencies uses the scheme outlined here:
http://docs.puppetlabs.com/puppet/2.7/reference/modules_publishing.html#dependencies-in-the-modulefile

This commit adds a Version and VersionRange class capable of
parsing the string representation. The classes also contains the logic
needed to compare versions and check if ranges include them.

The new behavior is currently only implemented in the Publisher and
the Forge v2 API logic, not in the rest of Geppetto.

Although this is related to issue #472, it's not a full implementation
of the npm tool spec. Only the subset described for Puppet modules is
implemented at this point.
Complete rewrite of the Forge service, switching from v1 to v2 API.

Puppetlabs will soon release their v2 RESTful API to the Forge. This
commit ensures that the Geppetto Forge service talks to this new API
instead of the old one. It also refactors large parts of the Forge to
become injectable.

In addition to the refactoring, this commit also adds a new bundle
for sematic versioning.
Adds support for Semantic Versioning ranges modelled from npm

This commit adds support for version ranges as described here:
https://npmjs.org/doc/json.html#dependencies with the exception
of disparate ranges, URL dependencies, and Git URL dependencies.

Closes #472
Adds test case for validation that performs download of dependency
Ensures that integration tests use a local forge cache.
Adds some missing about.html and sets 3.0.3 version on all bundles
Forge project now using standard maven layout
Improves exception propagation in forge maven plugin
Changes needed to make Modulefile become just one source of metadata

This commit ensures that metadata can be read from both Modulefile
and metadata.json (the latter has precedence). It also makes it easy
to add new metadata extractors. The Maven plug-in exploits this by
adding an extractor that reads the pom.xml file.