Give the example placeholder its own line-height.

This way it doesn't inherit from something further up, whose line-height
may be more or less than we expect.
Added lineHeight to the font-spec object.

Line height is a core font property - it can be specified as part of the
unified 'font' definition - and we therefore need to give users access
to it when they're manually defining the font.
Tiny optimization; don't set info.y twice.
Round text coordinates consistently.

The core implementation used parseInt, which was originally to catch
text values, but really only stayed due to its side-effect of flooring
the values.  The canvas implementation has never rounded coordinates.
This led to various one-pixel rendering glitches between the two
implementations.  I've fixed the problem by consistently rounding
coordinates to the nearest whole number.
Set the text baseline only once.

The setting is the same for everything, so there's no reason to re-set
it every time.
Pre-compute coordinates for each line of text.

The values don't change, so there's no reason to repeat those
calculations on every redraw.  The resulting code is not just faster,
but also smaller and simpler, and we no longer need to store halign in
the text info object.
Use actual line height for canvas text rendering.