Refactor API version assertion into separate class

Since following CKAN harvesters in this extension will import the groups
as well the API version enforcement is required in every case. Hence, I
have refactored the functionality into a separate class from which now
the custom CKAN harvester will inherit.

Signed-off-by: Konrad Reiche <konrad.reiche@fokus.fraunhofer.de>
Implement Berlin CKAN Harvester

I have added the code necessary to solve the data interoperability for
the Berlin CKAN instance. This includes the translation of group names
and the check for the license id field.

Signed-off-by: Konrad Reiche <konrad.reiche@fokus.fraunhofer.de>
Implement RLP CKAN Harvester

I have added the code for the RLP specific CKAN harvester. This
implementation contains the most package changes so far.

That includes moving extra fields that are configured as core fields
back into extras, setting the package type manually to 'datensatz'
except for some cases where it is 'dokument'. Packages with other
content types are dropped completely.

If required the author field is copied from point of contact and some
groups are adjusted and filtered if they are not part of the official
GovData.de groups.

Signed-off-by: Konrad Reiche <konrad.reiche@fokus.fraunhofer.de>