Refactor the complete metadata harvester structure

I have started to heavily overhaul the whole harvester structure. This
way it will become a lot more lightweight. I have and will remove more
of the repository model classes, respectively their usage. Also I have
started to rewrite this tool after the typical Gem structure. For that
reason I have added the bin directory and moved the code partly to it.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Add Ruby gitignore file plus the archives folder

Just added the default GitHub Ruby gitignore file including the archive
directory which is used for the harvesting output.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Add file for providing the recursive JSON parsing

I think it would be great if the recursive version of JSON.parse could
be invoked on the JSON module, too. Hence, I have added a core extension
file that implements that behavior. Although I am still startled that I
have to use the ClassMethods submodule, use extend and define,
respectively redefine the included method.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>
Continue refactoring of whole harvester structure

It is hard to decide at which parts changes have been made. In any case
I am still relying on Ruby libraries for performing the decompression.
This is still better, then doing that based on system commands. I have
replaced the zipruby library with the rubyzip library. The latter one
seems a lot more advanced. I hope, with this implementation, that this
is sufficiently memory efficient.

Signed-off-by: Konrad Reiche <konrad.reiche@gmail.com>