Improve error messages and maintainability by replacing ad-hoc strings with `thiserror`, adding `Error Handling` section to docs/README.