add `with` option to rspec matcher

This adds a `with` option to the rspec matcher which asserts on the arguments broadcast. If does not use chained matchers such as 

```ruby
expect { publisher.execute }.to broadcast(:event_name).with(arg1, arg2)
```

This is  because this requires the block to be yielded twice, once for `broadcast` matcher and once for the `with` matcher (and once for other chained matchers like `once`). This problem is potentially fixed in rspec 3.1 , but it is not yet beta. 

So for now while not very rspec-y we can have an optional inline `with` option on the `broadcast` matcher such as:

```ruby
expect { publisher.execute }.to broadcast(:event_name, with: [arg1, arg2])
```