Added repository recreation app

Sorry for such a big PR.

The main ideas are:

 - the creation of a new app for recreating the repo
 - the use of memory quantities where appropriate
 - the use of a custom MR job to recreate factsets   
These can not be `lazy val`s. This is a view of a mutable thrift struct, so it means that they will take only the first record of each reduce.

As a side-note. We can't really afford `lazy val` in any of the tight loops (map method, or the while loop of the reducer), so we need to be pretty careful about where add them in general.