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.
* Factor inner lexer setup in separate method.
* [bugfix] Explicitly bind `logger` of `_LexerFactory` to `logger` of `Lexer`.
* [bugfix] Renew inner lexer on each data input.
* Drop debugging info; `verbose` should serve only one purpose.
* Improve API of `Lexer`. Throw `Exception` when requesting infeasible operations.
* Store `debug`, `optimize` and `verbose` status in `Lexer`.
* Improve docstrings and beautify code.

### Lex test:
* Expand and groom API testing using TDD.
* Cleaning `logger` after faulty input is user's responsibility.
* Split tests in many classes.
* Fix typos and beautify code.