Check expects() exists, else define a dummy function.
Added cache, so tostring functions need not be used all of the time; saves performance.
Use rawget(), fixes bug where root_node:parent() ~= nil
Added node:get_child(key) and node:remove_child(node)
Updated error messages to ensure they're in the format "$line: $reason"
Fixed not using token.line for error messages (was using the old token.cur_line)
Added check to ensure all nodes where closed when parsing.
Added create argument to loadfile() (defaults to true)
Fixed nodes writing an empty string when there is no value to write.