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

resubmitted for PR361, rebase to current master.
http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html#drainTo(java.util.Collection)

BlockingQueue has a method drainTo that does this for you in a thread safe way.  Since blockingQueue is thread safe, i dont believe you need the `synchronized (this)`.