Actually, we have never called `engine.uninit()` from the very beginning but I have no idea why.

On the other hand, we're unable to aware how many layouts in keyboard app are enabled from settings after the new keyboard manager is landed, therefore, we won't know when is the best timing to `uninit` an unused layout engine. In this case, I propose that put a `setTimeout` in `deactivate()` to unload itself when it has been idle for a while (as "latin" engine did). If so, we can also resolve the race condition issue that @PinZhang mentioned.