added optional timeouts to {connection,session,sender,receiver}.close() as well as connection.detach() and {session,sender}.sync()