move port OIFs from dictionary to a separate table

Port outer interfaces don't actually belong to the dictionary, the
reason for keeping that data there was to reuse the infrastructure.
However, with tableHandler() implemented that becomes less important
than missing foreign keys.

This change removes dictionary chapter 2, moves the outer interfaces
rows to a table of their own, much like the inner interfaces, and adds 3
new foreign keys that reference the new table.

* fetchPortList(): fetch data from PortOuterInterface instead of
  Dictionary
* getPortOIFCompat(): idem
* getPortInterfaceCompat(): idem
* getExistingPortTypeOptions(): idem
* getPortOIFOptions(): idem
* getPortIIFStats(): idem
* renderDataIntegrityReport(): idem and remove checks that duplicate the
  new foreign keys and update the foreign keys list
* getChapterRefc(): move POI-specific query to a new function
* getPortOIFRefc(): the new function
* dictionary.php: remove the contents of chapter 2
* functions.php: remove CHAP_PORTTYPE constant
* install.php: make the changes to schema
* upgrade.php: idem and add a section for 0.20.8
* renderPortOIFViewer(): new function
* renderPortOIFEditor(): new function
* navigation.php: register new page for POI management
* ophandlers.php: update $opspec_list for PortOuterInterface