std::vector: Free backing store in destructor

Previously, our implementation of std::vector::~vector correctly
destructed all elements in the vector, but failed to deallocate the
memory for the backing array itself.  This should fix some of the
memory leaks we've been encountering.
usertests: Fix subdir and rename tests

These both tried to create a directory called 'dd', but that's a binary
now.  Rename to 'sub'.
gdb: Support GDB compiled with Python 2 or 3
oplog: Give logged_object a virtual destructor

logged_object is an abstract base class, so it needs a virtual
destructor.  This may help with some memory leaks.
lib: Partial implementation of standard functional header
lib: Standard C++11 is_sorted* algorithms
lib: Standard C++11 heap algorithms
lib: Standard C++11 priority_queue adaptor
lib: Standard region move algorithms
lib: Implement vector region erase
lib: Fix bugs in unique_ptr

Including disabling the default copy constructor, which is kind of the
point of unique_ptr.  Doh.
lib: Standard C++14 make_unique

This doesn't require any C++14 compile features.  Its omission from
C++11 was basically considered an oversight.  make_unique is much
safer and cleaner than using the unique_ptr constructor directly.