Merge remote-tracking branch 'freundt/next' into next

* freundt/next:
  minor, pass on libtwsapi's CFLAGS and LIBS in twstools' pc file
  minor, install headers usable for external DSOs to $(includedir)/twstools
  chore, provide pkg-config (.pc) file for twstools suite
  dist, PEBKAC, actually distribute dso_magic.h
  fix, actually export class methods so they're available in DSOs
  cosmetics, give a reason for not opening a module
  minor, provide example DSO `proof_of_concept' for twsdo
  cosmetics, rename static `dsos' variable to `strat'
  minor, actually do some work (same place where mm would have its strat executed)
  minor, bring DSO loading through libltdl
  cosmetics, add libtool generated files to git ignore list
  cosmetics, add test-driver (automake 1.12) to git ignore list
  chore, kick AC_PROG_RANLIB as libtool does its job now
  chore, check for libtool/libltdl in configure
install more headers
hack, always get contractDetails when requesting market data
hack, remember one ContractDetails for each mm contract
hack, add conId to mkt data contracts
hack, all twsdo members are public
Merge branch 'dso/mm_mod_hacks' into next

* dso/mm_mod_hacks:
  hack, all twsdo members are public
  hack, add conId to mkt data contracts
  hack, remember one ContractDetails for each mm contract
  hack, always get contractDetails when requesting market data
  install more headers
rpm, add devel package to spec file
twsdo, strat is a member instead of global static
twsdo, do initTwsClient() early in constructor
twsdo, apply config after constructor to prepare better error handling
twsdo, abort if module can't be loaded
twsdo, abort if loading workfile fails
Merge branch 'dso/cleanup' into next

* dso/cleanup:
  twsdo, abort if loading workfile fails
  twsdo, abort if module can't be loaded
  twsdo, apply config after constructor to prepare better error handling
  twsdo, do initTwsClient() early in constructor
  twsdo, strat is a member instead of global static
  rpm, add devel package to spec file
Merge branch 'next'

* next:
  twsdo, abort if loading workfile fails
  twsdo, abort if module can't be loaded
  twsdo, apply config after constructor to prepare better error handling
  twsdo, do initTwsClient() early in constructor
  twsdo, strat is a member instead of global static
  rpm, add devel package to spec file
  hack, all twsdo members are public
  hack, add conId to mkt data contracts
  hack, remember one ContractDetails for each mm contract
  hack, always get contractDetails when requesting market data
  install more headers
  minor, pass on libtwsapi's CFLAGS and LIBS in twstools' pc file
  minor, install headers usable for external DSOs to $(includedir)/twstools
  chore, provide pkg-config (.pc) file for twstools suite
  dist, PEBKAC, actually distribute dso_magic.h
  fix, actually export class methods so they're available in DSOs
  cosmetics, give a reason for not opening a module
  minor, provide example DSO `proof_of_concept' for twsdo
  cosmetics, rename static `dsos' variable to `strat'
  minor, actually do some work (same place where mm would have its strat executed)
  minor, bring DSO loading through libltdl
  cosmetics, add libtool generated files to git ignore list
  cosmetics, add test-driver (automake 1.12) to git ignore list
  chore, kick AC_PROG_RANLIB as libtool does its job now
  chore, check for libtool/libltdl in configure
update ChangeLog
use NULL instead of empty string as default file name
fix, twsdo should not abort if no workfile and no stdin
Merge branch 'fixes'

* fixes:
  fix, twsdo should not abort if no workfile and no stdin
  use NULL instead of empty string as default file name