Rename ProcessorsSpec to eliminate conflict with the ProcessorSpec component.
Fixes #171. Moved the try/catch around the event routing for loop to just around the invokeConsumer call. Also had to wrap the completionConsumer with a try/catch and errorConsumer invocation. This meant the test had to change which means there are slightly different semantics now for how Consumers are invoked.

Previously, if a single Consumer among the List of Consumers registered to a Selector failed, then the for loop was broken. If it was a Throwable of some kind, the errorConsumer wasn't even called because those errors bubbled up. This change catches Throwable as well and pipes all errors through the errorConsumer so that Consumers in error get handled by the error Consumer but other Consumers that don't throw Exceptions can still be run, despite an error in another Consumer registered to that Selector.
Fix NPE in SslOptions when no keystoreFile is set (which means use the defaults).
The .jks files for use in the SSL test weren't included in the repo, so it's likely the CI tests were failing because of that. Added the .jks files to git and am testing the CI build for SSL tests.