Net::LDAP::Connection#search cleanup

This aims to clean up the `Net::LDAP::Connection#search` method, starting with argument handling. I'd like to also extract size limiting, sort controls, paging, and anything that should be encapsulated better. Should also try to expand any lacking tests.

@jch this may help us extract the `SearchRequest` object.

cc @jch @schaary 

Removed the `"dc=example, dc=com"` default base since it didn't seem useful in practice (and likely more confusing).