Plugin for BouncyCastle.

It serves multiple purposes:
* centralises presence of BC (now we have multiple ones scattered as plugin deps)
* centralises JCE registration/unregistration in one single place.

This only adds new core plugin and simple code that registers/deregisters it
and marks BC classes as "plugin shared" dependencies.
Applied pull req comments.

This is becoming now a "crypto plugin"
Also, event bus is used to consume and act upon events
instead of phased out event inspectors
Refactored

Lessen component count, and will try to be polite when BC is already
registered with JCE (well, obey and yell, as previous code was neglecting
this case).
Merge remote-tracking branch 'origin/master' into bc-provider-plugin

Conflicts:
	nexus-webapp/pom.xml
Merge remote-tracking branch 'origin/master' into bc-provider-plugin
POM updated with changes.
Registering BC in constructor with JCE.

As this component is marked as EagerSingleton, this registration
happens as soon as possible (from a component), and registration
does not "wait" for an event anymore to avoid existence of "window"
where nexus boots but no BC is present yet.
Added missing license header
Applied comments.

Jason was right, this was "too much". Plugin now
reduced to single "event handler" that registers and
unregisters BC. Plugin among other thins, also provides
goodies-crypto stuff too
Renamed plugin.

Was "nexus-bouncycastle-plugin" now is "nexus-crypto-plugin"
to reflect the fact this is not only about BC. Other main
use case of this plugin is to centrally provide goodies crypto.
Plugin rename propagated
Normalized plugin properties.
Merge pull request #713 from sonatype/bc-provider-plugin

Plugin for BouncyCastle.