Add storage dir and eviction strategy [TACHYON-33][SubTask 2 & 3]

resubmitted for PR361, rebase to current master.
How can a caller guarantee thread safty?  The caller will need to know what lock to block on for all map operations.  Also maintaining that client code will be buggy, since people forget that they need the lock.  It would be best to either a) remove this, or b) get a lock and make a copy.