Changed lua_pushlstring signature to use :pointer instead of :string

Added 3 different ways to push a string to the stack. At one point, only stack_push_string_unit8 worked. Now all 3 work, perhaps due updating FFI?
Added additional specs to test round-tripping from both sides, as well as verify that bytes after the first \0 aren't also \0 (since this happened during testing).

BEFORE updating ffi, can you check which of `stack_push_string_string`, `stack_push_string_bytes`, and `stack_push_string_uint8` work on your machine? At one point only `stack_push_string_uint8` worked, but now all methods work. If it's an FFI issue then perhaps you should set the FFI dependency version to the earliest you have that works.