This makes `config.tests/rocksdb` check if the library was compiled with
USE_RTTI=1 by creating an instance of an `AssociativeMergeOperator`
derived class. When rocksdb was compiled without RTTI this should
produce
```
undefined reference to `typeinfo for rocksdb::AssociativeMergeOperator'
```
when running `qmake` in `config.log` and use the static library instead.
- New class: ZmqSubNotifier which only does something if libzmq was
enabled at compile-time
- Fulcrum.pro now tries to auto-detect libzmq using pkg-config (on
unix). One can override this auto-detection with `LIBS=-L/path/to/zmqlibdir -lzmq`
- App now compiles-in the commit hash used to build it (Unix only).
Auto-detected on unix only. On Windows the commit hash must be
specified as a DEFINE.
- Added -v/--version CLI arg to print extended information about which
libs the app was built against, including Fulcrum's own commit hash.
- Updated static docker builds to link-in a statically built libzmq
- App now prints what libs it contains / is using at startup to the log.
Jemalloc is better suited for the memory usage pattern of Fulcrum,
which is allocating/freeing lots of random sized buffers from multiple
threads, resulting in lots of fragmentation.
Jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.