FIX: Per-session dialect support

This adds support for using different FIX dialect per session at
runtime.

The current implementation allows dialects to specify tag types but can
be extended to support session level quirks, custom message headers,
custom message types, and message tag validation in the future.

Current generic FIX dialects are available as "fix_dialects" array
that's indexed by "enum fix_version" values.

Signed-off-by: Pekka Enberg <penberg@iki.fi>
FIX: IEX dialect version 1.2

Add support for IEX FIX version 1.2 as specified in:

  https://s3.amazonaws.com/iextrading/docs/IEX+FIX+Specification.pdf

Please note that this patch also introduces a code generator that
simplifies introducing new FIX dialects to libtrading. The use of the
code generator is optional and you can also implement dialects manually.

Signed-off-by: Pekka Enberg <penberg@iki.fi>