Implement atomic file for proposed / acknowledged epoch files

ZooKeeper uses AtomicFileOutputStream from HDFS. It relies on rename() being atomic, which is not the case for windows. Since we are on java 7, we can use java.nio.file.Files.move() instead.

https://github.com/toddlipcon/hadoop-common/blob/qjm-patchseries/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/util/AtomicFileOutputStream.java

http://stackoverflow.com/a/10532430
Hi @m1ch1 , would it create a bunch of temp files in temp directory finally ? It's it's true, how about deleting them after     
replacement?