convert: initial support for extracting cab files

code/documentation borrowed from the cabextract project <http://www.cabextract.org.uk/>
code is not functionally integrated yet; however, code for parsing the cab header (in python), and code for decompressing the LZX folder blob (in c++) is available.
convert: split lzxd.cpp into multiple c++ files
convert: data I/O is now done via function ptrs
convert: lzxd: callbacks are now wraped in IOWrapper

before, the pointers to readfunc and writefunc were passed directly.
now, an object of the abstract IOWrapper class is used.
(this step was required to support the python API implementation)
convert: lzxd: added virtual destructor to IOWrapper
make: use input setup.py file as rebuild trigger
convert: basic python interface for lzx decompression
convert: commented out unused variable in lxz decompression
convert: cabextract: can now extract cabfiles

example:
>>> from cabextract.cab import CABFile
>>> cabfile = CABFile('empires2.cab')
>>> cabfile.open('ai/ai.txt').read(6)
b'AI.txt'

code is not yet integrated with rest of convert script
make: integrated the python module specification into cmake

this allows creating exported python modules within
the cmake config. the actual disutils call is filled
with the source file info cmake got.
make: configure main Makefile.in

this also means an end for the bin/ folder hardcoding.
make: python module and c extension definition for convert added
datastructure: implemented doubly linked list
make: fixed indentation for generated setup.py content
make: removed obsolete binary output settings
make: fixed generated makefile rule name
doc: added zombie survival mode idea
make: run setup.py only if it's the main module
make: python setup.py now supports CXX customization and CXXFLAGS

also fixed DESTDIR support
convert: cabextract: minor cosmetic changes