Populate the package fields properly

The 'Depends' attribute meta data is not mandatory and should be checked
for existence. Other attributes added too.
Fix the path for our own needs
Make it compile with custom dependencies

SONATYPE are using internal dependencies in their jars which cannot be
found in maven central. Make the project compile so we can
"patch"(replace classes in) the plugin that they provide.
Revert "Fix the path for our own needs"

This reverts commit c70296d0a34a5b459d9d5291ed9b970be4b8342f.
Using the same version of nexus throughout
Changed app-lifecycle-maven-plugin for the new nexus-plugin-bundle-maven-plugin

nexus-plugin-bundle-maven-plugin replaces the app-lifecycle-maven-plugin
according to https://issues.sonatype.org/browse/NEXUS-2284
Added type definitions to the dependencies for correct bundle generation

Without setting the type of nexus-indexer-lucene-plugin to nexus-plugin
it wasn't properly included in the plugin.xml, causing classpath errors
when running the plugin.
Workaroround for NEXUS-5799.

NEXUS-5799 (https://issues.sonatype.org/browse/NEXUS-5799) may cause the
apt plugin to be run before the min plugin, meaning that
updateArtifactInfo won't do anything, but updateDocument and
populateArtifactInfo will since the fextension property is set after
updateArtifactInfo is executed. By checking the filename in the Document
instead of the fextension property in the ArtifactInfo, this issue is
avoided and updateArtifactInfo will execute properly.

I also changed from using the fextension property to using packaging,
which is more appropriate.
Renamed DebianContentLocator/Generator to Packages...
Added support for signing the repository.

Restructured how files are generated and introduced the files:
 * Packages
 * Release
 * Release.gpg
 * apt-sign.key.gpg

The first three are standard APT repository files and the last one is
the public key used for signing the armored Release.gpg file. The last
two files are only available if the APT: Configuration capability has
been added and configured properly.

Files are now cached for 5 seconds after creation to speed up generation
of the Release file which would otherwise trigger the generation of
Packages two times, the same goes for Release.gpg. Without caching, the
Packages file would be generated 5 times during a single APT sync since
both Release and Release.gpg needs to be downloaded as well as either
Packages or Packages.gz. Files are now generated by FileGenerators and
hooked in to the DebianFileManager, this also makes it easy to add other
files in the future.
Using hexadecimal encoding instead of base64 for digests
Not allowing reuse of the FileManagerContentLocator
Corrected a typo in the debian field specification
Not writing entries for packages that are incomplete
Updating modification time of all stored files so APT doesn't HIT

APT fetches files by issuing conditional requests with the last
modification time of the requested file, since this is set to when the
file was created and then never updated, APT will get a HIT on all
subsequent updates and only retrieve a new version if the Nexus server
is restarted.

The changes in this changeset modifies this behaviour by updating the
modification time of Packages(.gz) and Release(.gpg) whenever a file
ending in .deb is stored, updated or deleted.
Fixed a bug where cached files from different repositories collided

Since files were cached on name only, collisions would occur if the same
file in two different repositories were accessed within the timeout.
This is fixed by prepending the ID of the repository to the key used for
caching.
Merge pull request #7 from Raniz85/master

Updated to work against latest Nexus (2.5.1-01)