Prioritize reads from queue by message ID

This is an an alternative proposal (compared to https://github.com/ruby-ldap/ruby-net-ldap/issues/136) for the issues defined in https://github.com/ruby-ldap/ruby-net-ldap/pull/133. It aims for minimal changes to provide for correctness. The changes here are local to `Net::LDAP::Connection#search` but could be moved to `Net::LDAP::Connection#read` instead.

Thoughts?

NOTE: This is targeting the `open-integration-tests` branch since it was branched from there for testing/development.

cc @jch @schaary 

Agree, though the practical impact here is that we'll just read in a loop until we get a result for the requested `message_id`, but then when control switches to the other query, the queued messages will be quickly drained from the queue.