Future -> Promise, Future is now a read-only subclass of Promise; FutureError -> MiraiError; fix setvalue/setexception race condition