Random fixes and some docs editions part#2
This time I did more fixes/improvements than writing the actual docs. Mostly it's about removing our own vague errors with use of serde::de::Error
API that provides more context in the string. While this moves us more towards "string as errors", we need to note that in all (afaict) cases, the caller can't do much about the error except either ignoring it or panicking on it. So a descriptive string is more useful than specific errors in this case.
Also, we can add more errors if/when needed later w/o breaking the API but we can't go the other way around so it's better to start this way.