Adds FileHistoryReader and FileHistoryWriter
Moves json encoding/decoding down to FileHistoryWriter and FileHistoryReader, respectively.