Rename function from `core.clj`
Document all public functions in `core.clj`

Also, make the ones that are not relevant to library users private.
Document undocumented combinators
Add docstrings to base parsers