Use constant WHITE value.
Pass more signedness and size of variables across functions.
Factor out max3/min3 functions as they can be used elsewhere.

This also uses the __typeof__ GNU extension to avoid multiple evaluation of
the parameters.
Use a chained max3() call to figure out the maximum value for the blocks.

This simplifies and shorten the code, and also corrects a bug whereas the
bottom right value was never accounted for.
Remove unused enums.
Reindent.
Use printf parameters, rather than printInts/printFloats.

This reduces the amount of code needed for debugging purposes.
Replace the printDirections() function with getDirections().

It returns a static string with a combination of directions, and can be
used as printf() parameter.
Make absBlackThreshold a global "variable".

This actually becomes a constant after parameters are parsed. Moving the
variable out of the main() function allows to stop passing it down as
parameter for all the function calls, and will allow better support for B/W
image processing.
Make setPixel() handle B/W images by using the global absBlackThreshold.

Since now the parameter is computed at global level, no change of API is
needed for setPixel: decide whether the pixel is black or white depending
on the global threshold, and do so straight in the function.

This allows removing errOutput() calls, and collapses the MONOBLACK and
MONOWHITE cases down.
Simplify parsing of multi index parameters by moving the NULL check.

This makes the callsites simpler and reduces the duplication of code.
Move the local variables settings for nxml to .dir-locals.

This also adds flyspell by default for markdown-mode.