Make Maven build use Kepler maintenance (SR1)
Add PuppetDB Integration feature

This commit adds the PuppetDB Integration feature. This feature
provides a view where Puppet Resource Events can be viewed. The
events are clickable and will navigat the user to the source code
that corresponds to the event (if found).
Replace splash screen with one saved using mspaint

For reasons unknown, the splash.bmp didn't show up on Windows. Opening
it in mspaint and then saving it again fixed the problem. This commit
provides the one saved with mspain.
Update PuppetDB integration with new icons for Failures and Changes
Update linux UI test launcher with PuppetDB integration plug-ins
Add imports to cater for indirectly referenced classes.
Fix problem with lack of checksums in exported modules
Move model classes that are not strictly v2 API to generic package

The ModelName and Metadata classes are not strictly v2. Modelname
is also used in v1 and Metadata with its attributes described by
Dependency, NamedTypeItem, and Type are expected to be used in
the v3 protocol as well. This commits moves them from their current
location in the com.puppetlabs.geppetto.forge.v2.model package to
the com.puppetlabs.geppetto.forge.model package.
Allow that TarUtils.FileCatcher can throw IOException
Update to new Puppet Labs based download URLs
Add Puppet Forge v3 API
Merge branch 'dev' into forge-v3-api
Fix module name deserialization issue when owner is missing
Add downloads attribute to API v2 Module entity
Update README

Update links to point from Cloudsmith to Puppetlabs.
Update PE 3.0 definition
Use String.intern() on owner and name
Ensure that parameters, providers, and properties are empty lists

The metadata should reflect empty lists rather than null for list
entries that contain no data. This became very important in the
v3 API where nulls are serialized.
Enable use of separate Gson for the v3 API

The v3 API must serialize nulls and uses a different date format
than v2 so a separate binding for a v3 Gson instance was added.
Introduce @Nullable for optional injections

The Plexus injection framework (used by Nexus) does not allow null
values on injected attributes even though they are marked as optional.
They must have a @Nullable annotation. It's irrelevant in what
package that annotation is declared as long as its name is @Nullable.

This commit provides a @Nullable annotation in the
c.p.g.commons.annotations package. Trying to find one in a supported
package turned out to be difficult and prone to introduce conflicts.

The commit also removes the previously introduced dependency to
findbugs (since it indeed introduced "package use" conflicts).