Add coroutine library

coroutine.wrap is not affected by the same bug as coroutine.create, so
coroutine.create was realised with coroutine.wrap and some trickery to
make it work like the original function