Store metrics in dead queue when cannot connect to Graphite

Hi

Problem is that we loose metrics when we have problems to connect with Graphite. The Idea to deal with it is to store metrics in DeadQueue and flush it after reconnect. 

My PR provides simple EvictingDeadQueue implementation based on com.google.common.collect.EvictingQueue. Code is configurable and allow to provide another implementations  of DeadQueue e.g. FileDeadQueue, CacheDeadQueue etc..