docs: Explain why module exists and use cases

Also,

- explain how to run tests
- add link to license
- fix a bunch of typos