Add ability to bind a random port

This was already possible, however, the bound port was nowhere to be
found except by reflecting through private objects
Add  test for BindRandom