record_merger: First working merge

* First commit with working merge on test data
patch_extractor: Adds extraction for objects

* Adds obj_patch_extractor.py and changes actions.py to address
  this additon
patch_extractor: Changes to different patch format

* Patches are now stored as a tuple of (action, path, value).
  Similar to the invenio DictDiffer. Therefor the patch actions
  had to be adjusted.

* Adds a possible base class for PatchExtractors

* Adds diff.py, which acts as an wrapper for the PatchExtractors.

* Adds patch.py, which applies the patches to an object.
patch_extractor: Introduces 'move' action

* Implements a simple algorithm to try to find parts of a dictionary,
  that has been moved around.

* Changes patch method to address this change.
patch_extractor: Adjustable patch depths

* Changes the general patch behavior to be as detailed as possible.
  Meaning that it is now going to insert every element on it's own
  instead of another collection datastructure.

* Since this behavior might not be desired, the KeyLimit class is
  introduced. This class basically just allows to query a certain
  path for being a key limit or not. The PatchExtractor classes use
  this information to stop the recursion.

* Fixes a bug in the 'move' method of patch.py
record_merger: Complete rework

* Contrary to previous commits/plans, record_merger is not using a
  plugin system anymore.

* Changes the format of the configuration files. Now two sections seem
  to be enough. According to this change the config_manager was changed.

* Adds first basic tests.