Improved extensibility of LogFormatter

* refactored code separating coloring logic
* allow full line customization of the format
* possibly faster operation
Rename "normal" to "end_color" in log format strings.

When not colorizing, use empty strings instead of two copies of "normal".

Update docs.