Screen/Memory/Bresenham: move branches outside loops

The swapdir variables don't change while in the loop, so don't keep checking them.
Memory/RasterCanvas: optimised polygon fill

Collaboration with Max Kellermann
RasterCanvas: restore order of points in ClipLine
Makefile: enable libpng and libjpeg for USE_FB=y

This was missing, but was never noticed, because this was hard-coded
for the Kobo.
FB/TopCanvas: "bpp" is bytes per pixel, not bits
FB/TopCanvas: support RGB565 output
Makefile: remove Kobo + SDL option
Makefile: remove obsolete variable SDL_PKG
Makefile: move rules from fb.mk to libpng/jpeg/freetype.mk
Circling diameter and full circle time infobox (enhancement #2939)

Adds a Cirle diameter infobox which displays estimated circle diameter and
full circle flight time. Useful for evaluating best thermalling mode with a
glider at different wing loading.
refactored turn_rate* from fixed to Angle
NMEA/CirclingInfo: more turn_rate optimisations

Avoid conversions from Angle to fixed and back.
Makefile: add Kobo libfreetype include path
MapDrawHelper: simplify BufferRenderFinish()

Return early if not drawn.
MapDrawHelper: rename to StencilMapCanvas
StencilMapCanvas: rename methods
(Stencil)MapCanvas: remove redundant IsVisible() check

This was already verified by GeoClip.
StencilMapCanvas: pass Canvas to Commit()
StencilMapCanvas: move code to CopyTo()
StencilMapCanvas: use CopyOr() on all (non-GL) platforms