* Add From impls for KdlNodeValue
Most clients probably don't need to create these directly, but we may as
well make it easy for them.
* Add TryFrom impls to convert from KdlNodeValue to underlying types
This includes converting from borrowed values, which will produce `&str`
instead of `String`.
* Add line and column numbers to KdlError
These numbers are calculated using our `newline` rule, as I'm not aware
of any standard for how to calculate line numbers in error messages.
The error retains the original `offset` field as well, but it's now
expressed in characters rather than bytes.
* Clean up error handling in parse_document()
We don't need to worry about `Incomplete` errors, the `complete` family
of parsers (which we're using) doesn't ever produce those. We can use
the `.finish()` function to unwrap the error instead, so we don't have
to worry about the underlying error types.