Compute lengths manually instead of using len()

More prep work for using ansi color codes.
More len() removals
First take at colorizing the output

Tested in both light and dark terminals, seems reasonable.