Update schema to reflect list item codes being different

* Add listItemCodeType
 - Add it to list item idno and type
 - attribute type restrictions (but also include an empty `<type/>`
 - ui type restrictions
 - userinterfaceScreens
  - restriction type
  - idno
 - typeLevelAccessControl type
 - display typeRestrictions type
 - searchForm type
 * Add  nillableListItemCodeType
  - Add it to relationshipTypes subTypeLeft and subTypeRight

* Change list attribute of metadataElement and metadataSubElement
* Add optional description to listItemLabels
Update the profile exporter idno lengths match the lengths in the datamodel

* Add phpdoc to Configuration and Datamodel
Merge branch 'updateProfileSchema' into profileExportFixes
Merge pull request #119 from kehh/profileExportFixes

Merging regardless of build failure due to time constraints, will look at failures later.