Moved DictFile to a separate module in order to reuse it
Ensure "revision" is a string

Otherwise, weird issues occurs, like Python dict accepting "1" and 1 as
different keys, while the json module considers them as the same one,
but add both to the JSON object :

In [18]: d = {1: 'a', '1': 'b'}

In [19]: json.dumps(d)
Out[19]: '{"1": "b", "1": "a"}'
Make DictFile remove its meta data file when calling clear()
Use DictFile for repository meta data