Avoid compiler warnings on x86-64 for `FT_MulFix'.

`FT_MulFix' takes `FT_Long' parameters as defined in `freetype.h',
but several inline implementations of it in `ftcalc.h' take
`FT_Int32' arguments.  This is causing compiler warnings on x86-64:
If parameters of type `FT_Fixed' (= `FT_Long') are passed to the
inline implementation of this function, integer values are truncated
from 64bit to 32bit.

* include/internal/ftcalc.h (FT_MulFix) [FT_MULFIX_ASSEMBLER]: Add
casts.
* src/base/fttrigon.c: Use dedicated `FT_Angle' for arctan table.
Trailing space.
Minor documentation improvements and whitespace.
Minor code improvement in `FT_Bitmap_Embolden'.

* src/base/ftbitmap.c (FT_Bitmap_Embolden) <FT_PIXEL_MODE_GRAY[24]>:
Fix thinko.
Make `FT_Bitmap_Convert' correctly handle negative `pitch' values.

* src/base/ftbitmap.c (FT_Bitmap_Convert): Always use positive value
for the pitch while copying data.
Correctly set pitch sign in target bitmap.
Change some fields in `FT_Bitmap' to unsigned type.

This doesn't break ABI.

* include/ftimage.h (FT_Bitmap): Make `rows', `width', `num_grays',
`pixel_mode', and `palette_mode' unsigned types.

* src/base/ftbitmap.c: Updated.
(FT_Bitmap_Copy): Fix casts.

* src/cache/ftcsbits.c, src/raster/ftraster.c, src/sfnt/pngshim.c:
Updated.
* src/base/ftbitmap.c (FT_Bitmap_New): Check argument.
* src/base/ftbitmap.c (FT_Bitmap_Copy): Improve.

This commit adds argument checks and support for different flow
directions.
* src/base/ftbitmap.c (FT_Bitmap_Convert): Improve.

This commit completes argument checks and adds support for different
flow directions.
[ftlcdfil] Obey flow direction.

* src/base/ftlcdfil.c (_ft_lcd_filter_fir, _ft_lcd_filter_legacy):
Handle `up' flow.
Minor.
* src/pcf/pcfread.c (pcf_get_metrics): Sanitize invalid metrics.
[type1, type42] Fix Savannah bug #43655.

* src/type1/t1load.c (parse_charstrings), src/type42/t42parse.c
(t42_parse_charstrings): Fix boundary testing.
[sfnt] Fix Savannah bug #43656.

* src/sfnt/ttcmap.c (tt_cmap4_validate): Fix order of validity
tests.
Formatting.
[cff] Fix Savannah bug #43658.

* src/cff/cf2ft.c (cf2_builder_lineTo, cf2_builder_cubeTo): Handle
return values of point allocation routines.
[type42] Fix Savannah bug #43659.

* src/type42/t42objs.c (T42_Open_Face): Initialize `face->ttf_size'.

* src/type42/t42parse.c (t42_parse_sfnts): Always set
`face->ttf_size' directly.  This ensures a correct stream size in
the call to `FT_Open_Face', which follows after parsing, even for
buggy input data.
Fix error messages.
[type42] Allow only embedded TrueType fonts.

This is a follow-up to Savannah bug #43659.

* src/type42/t42objs.c (T42_Face_Init): Exclusively use the
`truetype' font driver for loading the font contained in the `sfnts'
array.
[bdf] Fix Savannah bug #43660.

* src/bdf/bdflib.c (_bdf_parse_glyphs) <"ENDFONT">: Check
`_BDF_GLYPH_BITS'.