taint: C++ STL allocator for tracking memory usage of C++ objects
Enable C++11 in taint-related plugins
taint: Use usage-tracking allocator for taint set
taint: use LabelSet struct in cleaner more C++ish way

First, call LabelSet's constructor and destructor. We use the "placement new"
operator to allow us to keep tracking its allocation in the mymem pool.
Second, repace the Bitset* member with a Bitset, since it can never be null
or shared and we dereference it for every operation. Memory management of the
Bitset object is now handled automatically by LabelSet's ctor an dtor.
taint: allow selectable label-set implementations, adds vector<bool> option

Previously, the storage backend of taint label sets was a std::set, which is a
red/black tree in the GNU STL. This patch
1) Allows the storage type to be swapped out
2) Adds a label set implementation using std::vector<bool> as a backend.
The vector-based label set operations are slower than the std::set version,
but require at least one order of magnitude less memory in our test cases.
taint: std::bitset version of taint backend
taint: fix panda_stats to use bitset API for enumerating set elements
taint: make vector labelset implementation the default
Merge feature 'std::vector<bool>'-backed taint labelsets into master