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

Closes #1