Merge:  Add metadata grouping (#169)

Production was extended to manage metadata groups.

To use metadata groups, first the metadata and person types that shall be part of the metadata groups must be defined in the rule set, i.e.:
``` xml
<MetadataType type="person">
    <Name>ProvPerson</Name>
    <language name="de">Person</language>
    <language name="en">Person</language>
</MetadataType>
<MetadataType>
    <Name>ProvPersonPPN</Name>
    <language name="de">Verknüpfung zur Person (PPN)</language>
    <language name="en">Link to the person (PPN record)</language>
</MetadataType>
<MetadataType>
    <Name>ProvDateTime</Name>
    <language name="de">Datum, Zeitangabe</language>
    <language name="en">Date and time</language>
</MetadataType>
<MetadataType>
    <Name>ProvRemarks</Name>
    <language name="de">Bemerkungen zur Provenienz</language>
    <language name="en">Remarks to the provenience</language>
</MetadataType>
```
Then, the metadata group must be defined in the rule set as well:
``` xml
<Group>
    <Name>Proveniece</Name>
    <language name="de">Provenienz</language>
    <language name="en">Proveniece</language>
    <metadata>ProvPerson</metadata>
    <metadata>ProvPersonPPN</metadata>
    <metadata>ProvDateTime</metadata>
    <metadata>ProvRemarks</metadata>
</Group>
```
Third, the metadata group must be added to the `DocStrctType`(s) where it shall be available:
``` xml
<DocStrctType>
    <Name>Monograph</Name>
    <language name="en">Monograph</language>
    <language name="de">Monographie</language>
    <!-- ... -->
    <group num="*">Proveniece</group>
</DocStrctType>
```
The kind of input elements to render can optionally be defined in `goobi_metadataDisplayRules.xml`:
``` xml
<ruleSet>
    <context projectName="My project name">
        <bind>create</bind>
        <!-- ... -->
        <input tns:ref="ProvPersonPPN" />
        <input tns:ref="ProvDateTime" />
        <textarea tns:ref="ProvRemarks" />
    </context> 
    <context projectName="My project name">
        <bind>edit</bind>
        <!-- ... -->
        <input tns:ref="ProvPersonPPN" />
        <input tns:ref="ProvDateTime" />
        <textarea tns:ref="ProvRemarks" />
    </context> 
```
If metadata groups shall be imported from PicaPlus, an import mapping has to be provided, i.e.:
``` xml
<PicaPlus>
    <!-- ... -->
    <MetadataGroup>
        <Name>Proveniece</Name>
        <picaMainTag>220B</picaMainTag>
    </MetadataGroup>
    <Person>
        <Name>ProvPerson</Name>
        <picaMainTag>220B</picaMainTag>
        <picaSubTag type="expansion">8</picaSubTag>
    </Person>
    <Metadata>
        <Name>ProvPersonPPN</Name>
        <picaMainTag>220B</picaMainTag>
        <picaSubTag>9</picaSubTag>
    </Metadata>
    <Metadata>
        <Name>ProvDateTime</Name>
        <picaMainTag>220B</picaMainTag>
        <picaSubTag>d</picaSubTag>
    </Metadata>
    <Metadata>
        <Name>ProvRemarks</Name>
        <picaMainTag>220B</picaMainTag>
        <picaSubTag>k</picaSubTag>
    </Metadata>
</PicaPlus>
```
If metadata groups shall be exported to METS/MODS, an export mapping has to be provided, i.e.:
``` xml
<METS>
    <!-- ... -->
    <Group>
        <InternalName>Proveniece</InternalName>
        <WriteXPath>./mods:mods/#mods:note[@type='custodialHistory']</WriteXPath>
        <Person>
            <InternalName>ProvPerson</InternalName>
            <WriteXPath>./mods:name[@type='ownership']</WriteXPath>
            <FirstnameXPath>./mods:namePart[@type='given']</FirstnameXPath>
            <LastnameXPath>./mods:namePart[@type='family']</LastnameXPath>
            <DisplayNameXPath>./mods:displayForm</DisplayNameXPath>
        </Person>
        <Metadata>
            <InternalName>ProvPersonPPN</InternalName>
            <WriteXPath>./mods:name[@type='ownership'][@authority='swb-ppn']/@ppn</WriteXPath>
        </Metadata>
        <Metadata>
            <InternalName>ProvDateTime</InternalName>
            <WriteXPath>./mods:date[@encoding='YYYY-MM-DD']</WriteXPath>
        </Metadata>
        <Metadata>
            <InternalName>ProvRemarks</InternalName>
            <WriteXPath>./mods:note[@type='description']</WriteXPath>
        </Metadata>
    </Group>
</METS>
```