This brings several changes with it:
- `Mpv::get_property` now returns `Option`s in case `data` is
nonexistent. There could be cases where this is different from
`MpvDataType::Null` and `MpvDataType::MinusOne`.
- `MpvError` now implements `PartialEq`
High-level properties are now optional, considering there are about a
thousand of them to parse. The high-level properties are a few chosen
ones that I suspect might be useful for most people, with catch-all enum
variants for the less common ones.
This moves all communication with Mpv's unix socket into another tokio
task, and uses message passing through clonable mpsc channels to receive
commands to execute, and to send responses.