remove garbage-collecting heisenbug with callbacks

If a python callback is garbage collected, it will cause a very hard to
debug segfault.  Creating the BeCallback wrapper around the python
function within open_handle() itself allowed for this bug to arise
(again) since the wrapper went out of scope before the callbacks were
actually asynchronously called.
refer to callback type arg as a code, not flag

BE callback type is indicated by a unique code argument rather than a
set of bitwise type flags, so 'flag' is avoided for clarity.
pythonic bulk_extractor interface

The BulkExtractor class is introduced, handling most setup and teardown
operations transparently.  Most notably, for workloads requiring only
histogram data, no user callbacks are required; histograms are placed
into a dictionary by feature file name after finalize() is called on the
BulkExtractor object.
cleanup python module source directory

- remove fake C library files, as the real library is fully operational
- rename modbulk_extractor.py to bulkextractor.py to match Python
  conventions
add simple python test like beapi_demo.cpp

- the bulkextractor module now also looks for a BULK_EXTRACTOR_LIB_PATH
  environment variable to override the default location of the dynamic
  library