Have unlisten return a future that derefs to a boolean [IMMUTANT-337]

Then users don't have to wait for it to finish unless they need to.