Asychronize Level.serialize

This change prevents cursor from being stuck when editor is loading.
But some ui components still stop to work until SpriteBuilder completes its work.
Let me know if further improvement is needed.

Fixes #548