Fix TestingStorageSystem where it deviates from S3

The TestingStorageSystem used by the unit tests did not conform to the behavior of S3StorageSystem working with the real S3, potentially invalidating unit tests. Specifically:
1) Directories always end in a trailing slash ("/"), while objects never
   do.
2) Directory listing should be in sorted order, and unique.
3) Corollary of (1): listing a "directory" missing a trailing slash
   should return no results (because it is not really a directory).
Generate per-type CombineComplete events

Rather than generating a single CombineComplete events when all of the
types have been completed, generate one event for each type as combining
completes. The event type is now included in CombineComplete event.
Inject the ScheduledExecutorService into the ScheduledCombiner
Schedule different event types separately

Rather than combining all events of all types from within the same
schedulable. Create a separate periodic schedulable for each event
type. This will allow for multiple threads to be used to combine
events.
Introduce new configuration for high/low priority events

The configuration now includes a set of high and low priority event
types. High priority event types will each be given their own thread for
processing. Low priority events will all share the same thread. All
other event types will be considered medium priority and will be handled
by a pool of threads of configurable size.
Support prioritized event types.

Using 3 ScheduledExecutorService objects, support prioritized event
types. Those that are considered high priority, schedule combining in an
executor with a pool of threads large enough to have one for each type.
Those that are considered low priority, schedule combining in an
executor with a single thread. For all other event types, schedule in an
executor with a pool of threads of configurable size.
Work around maven dependency issue

For a currently unknown reason, the fact that aws-java-sdk dependency
for either 1.1.1 or 1.1.2 of commons-logging, in combination with other
modules depending explicitly on 1.1, causes maven to package 1.1.2 but
lists 1.1.1 in the manifest. Until the root cause can be found and
fixed, exclude commons-logging dependency from aws-java-sdk so that this
can be properly packaged.