Just made all tests include libpthread, it makes sense these days.

Creating an experimental new cache system that's controlled primarily with a
subclass.  This should cut down significantly on the amount of code needed to
use the cache.  The new one also features a required (for now) base class for
objects that use the cache.  This simplifies so many different things.
More things in the default.bld just include pthreads now.  It just makes sense.
Really minor addition to the new cache system.  I think I will split it into
two classes, one for the store, one for the cache itself.  The index will have
to go with the store, which I find a little odd, but it'll...probably work out.
Added auto-lock classes to the Bu::ReadWriteMutex, I think I like that type of
encapsulation, at least for the read/write guy.  Also started work on a
thread-safe wrapper for the standard hash.  There is a lot of functionality we
just have to leave out in this, it's just too dangerous in a thread-safe class.
Added a unit test for Bu::SynchroHash.  It's just a tweaked copy of the test
for Bu::Hash, which tests the basics alright, but not the synchro part.  I'm
still trying to figure out a good test for that.
Adding the Bu::DualFilter which could work out really well, it's going in for
testing now.  The idea is that it makes it easy to use a bi-directional stream
like a tcpstream that requires a seperate filter instance for each read and
write side.