InputTestDriver sleeps exactly until input loop emits all the test data

In order to avoid sleeping long, specify expected emits and then
InputTestDriver continuously sleeps very short so that input loop will emit all the test data.

I want to use `expected_emits_length` via outside of the class to set when `InputTestDriver#run` ends.
For example like `ForwardInputTest#test_message` ...

```ruby
def test_message
  d = create_driver

  records = [
    # some records
  ]
  d.expected_emits_length = records.length

  d.run do
    records.each do |tag,time,record|
      send_data [tag, time, record].to_msgpack
    end
  end

  assert_equal(records, d.emits)
end
```

I used `attr_accessor` because I don't know much about how to write better.
If you have any good idea, please tell me.