Sharex

Added base/sharex.h and it's unit test. This is similar to base/potato, but without the shared_ptr semantics.  It's something we've been flirting with but not quite having for a while and it was useful for the distributed simulator.  It's basically a very thin wrapper around pthread_rwlock.