Refactor 80-character ruler for speed

Don't create a div for each line. Instead, calculate the width of the
gutter (line numbers) and take the padding of the "code" cell into
account. This approach results in vastly improved performance when
reviewing large patches, positions the ruler at the same pixel
position for the ruler as before, and barely changes the visual
appearance of the ruler.