Refactor and test lex API. Simplify standalone use of lex module. Fix couple of bugs. Beautify test code.

### Lex:
* Add `tokenize` and `quiet_tokenize` for ease of use.
* [bugfix] Explicitly bind `logger` of `_LexerFactory` to `logger` of `Lexer`.
* [bugfix] Add `reset` method. Invoke `reset` method upon data input.
* Drop debugging info; `verbose` should serve only one purpose.
* Simplify iterator API.
* Improve docstrings and beautify code.

### Lex test:
* Test new API.
* Split tests in many classes.
* Fix typos and beautify code.
If `reset` wasn't called there, the tests in https://github.com/dionyziz/llama/commit/2a7ac8614415a2c938e50e50a1ddd93b76f97f23 would fail. Try it yourself. Apart from that, there is no sensible way to test `reset` since it belongs to a private class.