Make Empty.tail to return Future

I think it is reasonable that `Spool.Empty.tail` returns `NoSuchElementException` wrapped by `Future` instead of throwing `UnsupportedOperationException` directly.