When an event is derived from multiple interfaces that don't have a hierarchy, only handlers for the first interface are called

### Symptoms

When an event, which concrete type is not shared between publisher and subscriber, is composed of multiple interfaces where there is no hierarchy among them, only handlers for the first interface are called. Handlers for the other interfaces are not invoked.

### Who's affected

Affected are users of all versions of NServiceBus that want to use client-driven contracts (interfaces defined by message consumers, message implementation private to the producer) and there is at least once consumer that wants to consume more than one event interface

### Details

For example, a publisher publishes event of type `MyEvent`:
```c#
public class MyEvent :  ISomeInterface, ISomeOtherInterface
{
}
```

The interfaces are defined in a common library as follows:
```c#
public interface ISomeInterface
{
}

public interface ISomeOtherInterface
{
}
```

A subscriber that has the following message handler does not get invoked
```c#
public class MyHandler : IHandleMessages<ISomeOtherInterface>
{
	public void Handle(ISomeOtherInterface message)
	{
		Console.WriteLine("Message received");
	}
}
```

More details, please see:
https://groups.google.com/forum/#!msg/particularsoftware/9COmFPo3MIo/Ua7ZRcRvKAUJ