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