initial pass at fd_provider->get

add a provider for sockets.

We won't be able to really clean out get_new_random_fd until the
dynamic conversion is complete.  Until then it might have to grow
a few more special cases.