The commit adds a from_reader and to_writer method implementation to
make it easier to work with IO streams.
Additionally, I have deprecated the `new` and `to_xml` functions in
favor of functions that match the naming scheme of serde crates more
closely: `from_str` and `to_string`.
* feat(api)!: add distinct error type
The commit adds an `Error` enum to the public API of the opml crate to
make it easier to reason about what went wrong during OPML
parsing/writing.