reduce duplication of code between get_draw and get_draw_constrained

get_draw now calls get_draw_constrained with empty constraints
add explicit virtual destructor to prevent warning

warning is: deleting object of polymorphic class type 'X' which has non-virtual destructor might cause undefined behaviour [-Wdelete-non-virtual-dtor]
define seed to prevent compilation warning
make modifications to squelch compiler warnings

create intermedate variables of appropriate type to prevent "comparison between signed and unsigned expressions [-Wsign-compare]"
remove unused variables to prevent unused variable warnings
make modifications to squelch compiler warnings
comment out assert_state_consistency()
add _do_analyze_with_summary: applies summary_func every every_N steps and returns list of summaries
add script to generate possible summary generation mechanism
slight cleanup of helper functions
clean up: utilize LocalEngine functions instead of reimplementing
remove duplication of get_is_multistate function in xnet_utils
clean up multistate handling for LocalEngine
Merge branch 'master' into SHOW_DIAGNOSTICS
utilize LocalEngine's multi-state capabilities instead of doing own map
clean up: remove unused logic
simplify initialize,analyze logic similar to LocalEngine
remove unused import of xnet_utils
add IPClusterEngine.py: minimal testing
modify __main__ to use IPClusterEngine
Merge branch 'ipcluster_engine' into SHOW_DIAGNOSTICS