Changes stemming for weekend talk with JD

Loosely relates to local storage improvements

Changes:
* Cleared up nullability of storage context: local is never null, remote is never null (unless a bug, hosted repo casted to Proxy and invoked getter for remote)
* Cleaned up "lazy" creation of storage context, caches and other stuff in Repositories (hosted and proxy)
* Moved thread management from registry (made it simpler) to proxy repo who's thread it is (as we introduced dispose)
* Added Override annotations for early warning (to ease refactoring)
* Removed unused setters from Repository interface
* Removed unused and unfinished task filtering
Shuffled around when things needing repo ID are created.

Originally, it was at wrong place, as no configuration existed yet
for the repo
UT used "illegal" mocks, having null storage context.
Stopping thread always.

As dispose is invoked only when repo is removed
from the system, but in tests, when JVM is not stopped
but new instance of nx is started, old threads left in
dandling causing OOMs
Using ComponentSupport, optimize import
Using component support
Deprecated resource store utils.

Only one method used in only one place, so moved it in.
Updated packaging mapper.
Deprecated smart wastebasket.
Removed MetadataManager inferface, as this made a mess here
Add OPTIONS handler method to PlexusResource

This will allow CORS headers (Access-Control-Allow-Origin) among other things in restful services.
NEXUS-6090: Getting rid of SISU Velocity.

That introduced component based configuration
for VE. Using plain provider pattern, as the
SISU Velocity was basically doing that same,
except in "plx way".

Changes:
* banned sisu-velocity from build
* upped goodies and mailer dependencies (that has needed changes too)
* removed SISU Velocity related code from Nx core
* introduced Velocityengine provider
* adapted restlet1x internals
* adapted VelocityContentGenerator
NEXUS-6091: RequestContext cleanup

Before RequestContext was introduced (around 1.0.x of Nexus)
it was a plain Map<String, Object>. This change makes req ctx
not a map anymore, and contains handful changes across whole Nx
to fix it's misuses as map.

Also, a UT introduced that verifies how context is properly
passed on as expected.
Merge remote-tracking branch 'origin/master' into context-and-repo-cleanup

Conflicts:
	components/nexus-core/src/main/java/org/sonatype/nexus/proxy/repository/ProxyRepository.java
	components/nexus-core/src/main/java/org/sonatype/nexus/proxy/repository/Repository.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/DefaultRepositoryTaskActivityDescriptor.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/DefaultRepositoryTaskFilter.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/RepositoryTaskActivityDescriptor.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/RepositoryTaskFilter.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/TaskActivityDescriptor.java
	components/nexus-core/src/main/java/org/sonatype/nexus/scheduling/TaskFilter.java
Merge pull request #242 from gnagy/master

Add OPTIONS handler method to PlexusResource
use  goodies 1.7.4
Merge pull request #222 from sonatype/context-and-repo-cleanup

[2.8] Changes stemming for weekend talk with JD
Merge remote-tracking branch 'origin/master' into NEXUS-6090-velocity

Conflicts:
	buildsupport/goodies/pom.xml
Fixing licenses

As these sources are moved and modified from terminated
sisu-velocity.
Merge pull request #247 from sonatype/NEXUS-6090-velocity

NEXUS-6090: Getting rid of SISU Velocity.