work on exppp

Related to #244 and #258

* fix warnings
* remove dead code
* refactor exppp.c into many small files containing related functions
* other cleanup
* always sort alphabetically before printing - remove -a/-A option
* sort CONSTANTs, which couldn't be sorted previously
* add -l for line length hint (_not_ perfect)
* wrap even with extreme indents (if it was too deep, wrap was disabled completely)
* reduce indent when it unreasonably big; tries to be proportional, e.g. 33% of calculated indent, or 50% of line length, etc. Numbers for various indents were refined by eyeballing output for a few schemas; it's possible my choices won't look good on other schemas.
* change whitespace
* fix crash when warnings are disabled and an entity in the schema has an unknown subtype ( ~~307d214~~ c9d100e)
* add -c to print CONSTANTs one item per line; looks good for strings but not when const is calculated
* changes for MSVC and for cross-compiling with gcc and mxe

----

One change to exppp cannot be merged and is missing from this pull request - a change to allow inverse qualified attributes (#261). While it works well enough for exppp, it won't work with exp2cxx and does not use the data structures correctly.