This allows code in lib, model etc to not worry about GeoAlchemy
versions. This assume the correct library installed, as the check has
been done when starting up.
Keywords were extracted via 3 different elements
`keyword-inspire-theme`, `keyword-controlled-other` and
`keyword-free-text`. The latter didn't actually do anything and the
second duplicated xpaths from the first and added a non-standard one.
A new `keywords` key has been added which contains all keyword objects,
including type. This is not used to modify the `tags` key right now.
Changes in multiplicity to support the ISO 19115 spec rather than just
the Gemini 2 one. Thanks to @dread for his help on this.
Summary of the changes:
* dataset-reference-date: Set to 1..*
Note that there was a bug with mutliple values allowed per date.
Returned object should now be like:
"dataset-reference-date": [{"type": "creation", "value": "2004-02"},
{"type": "revision", "value": "2006-07-03"}]
* metadata-languge: Set to 0..1
* resource-type: Set to *. That means that a list is now returned
* bbox: Set to *. Note that bboxes are now returned as objects such as:
[{"north":xxx, "south":xxx,, "east":xxx, "west":xxx}, {"north":xxx,
"south":xxx,, "east":xxx, "west":xxx}]
The existing Gemini based harvesters and validators have been adapted,
all tests pass.
Tests are passing, apart from a couple which didn't work before:
* test_functional.py -> functional/test_package.py (3 failures in 4)
* functional/test_dataset_map.py (1 fail in 1)
There may be some code errors still untested.
Renamed Validator -> Validators to make more sense.