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

resubmitted for PR361, rebase to current master.
Sorry, could you explain the logic of the while loop here? Anything with while(true) scares me =)

It looks like the logic do multiple iterations which one is going through all the available storage dirs and the other for each storage dir go inside to look for blocks to evict?