Multi line text output for the font addon.

Add al_draw_multiline_text, al_draw_multiline_textf, and
al_draw_multiline_ustr.  Text will be broken into lines either on
a newline character '\n' (but not carriage return '\r'), to force
a line break, or on a space or tab if the text is wider than
the max_width parameter. The line height can be set as a parameter
or when set to 0, the font's line height is used as a default.
There are also al_do_multiline_ustr and al_do_multiline_text
for advanced text layout needs.  There is an example program
ex_font_multiline.cpp to test out these functions with.
De-duplicate the multiline-text documentation
Make ex_font_multiline more snazzy
Make the horizontal positioning of custom text better looking in ex_font_multiline
Fixed TRIGGER_HAPPY buttons for Linux joystick.
Added Windows haptics driver, XInput joystick driver. (Beoran)
Demand load xinput dll
Fix warnings in wjoyxi.c

Those two functions weren't exported, so they can be static.
Silence a redefinition warning under MinGW-w64
Change all direct accesses to ALLEGRO_BITMAP::format to al_get_bitmap_format.

In many cases this isn't actually necessary (as we are guaranteed to be dealing
with parent bitmaps) but:

1. Not using al_get_bitmap_format invites human error in case that function is
   refactored
2. It is a premature optimization
Change all direct accesses to ALLEGRO_BITMAP::flags to al_get_bitmap_flags.

See previous commit for the rationalle.
Simplify al_convert_bitmap

In particular, the sub-bitmaps are now not touched, and just the parent is
converted.
Update the documentation for al_convert_bitmap
Rename ALLEGRO_BITMAP::flags, format to _flags and _format.

This highlights their private nature and will raise obvious errors in case some
place still accesses them directly. The leading underscore just seemed like a
good convention.
Give the D3D backbuffer bitmap a valid flag
Cumulative changes of the changes made for Factorio version of allegro.

1) Optimisations of the drawing methods, mainly the d3d part, it makes the drawing of bitmaps 2 - 3 times faster.
Some of these need to be called in special circumstances, so these methods have _optimised suffix.
2) Fonts with borders (ALLEGRO_TTF_RENDER_BORDER)
3) Small fixes for primitives drawing
4) Fix of the bug, that some special kind of mouse didn't work on mac
5) some other very small other fixes.