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).