fr::Listener's destructor wasn't virtual, so children's destructors weren't being called. fr::TcpListener did not have a destructor, and so did not close its socket on destruction. fr::SSLListener now uses fr::TcpListener's 'listen' function instead of its own, as a temporary hack, as mbedtls does not support setting the address families. Added get/set functions to the listeners for their socket descriptors.