I made it so it would function like a lot of the other create_[whatever] function in our library. We haven't been been returning copies from any of those, but instead using the arguments to pass back and forth. I did this function based off our current [string API](https://github.com/mozilla/webvtt/blob/dev/src/libwebvtt/string.c#L15). Right now it's more of a convenience function for the C++ API.

Taking a look at this again though it might make sense not to release the node if *node is valid. Releasing that isn't the responsibility of the function.