Update to introduce a parallel facility for the plant template
library (from Nicks code base). The current binary and ascii
plant template database is somewhat fragile and this parallel
facility uses a tag:data format for the template library which
should be more robust and human readable and human editable.

It includes provisions for graphic representations of plant
components (currently not used) as well as reference by name
rather than reference by ID number. This will make it less
likely to have clashes in plant component ID when development
work is undertaken by different groups.

The alternative format supports the functions of all existing
components but existing TRNSYS components might not be well
represented in the new scheme and requires testing.  One new
feature is that components are placed in categories so that
they are easier to access (rather than one very long flat list).

The parallel facility involves a new (perhaps temporary) source
code structure in esrucdb which provides an interface to the
components.

The facility allows a binary plant template database to be exported
to the new format which is ASCII and models which use it will no
longer need a binary plant database (making it easier to transport
models between machines.

Process
Take Nick Kelly branch (8 months out of date) and
manually merge changes into prj_dev. Compile, adapt Makefiles and
then run forcheck on the code and address reported errors.


Notes below on changes and additions to files in the source distribution:

Places where plant database is read from: 

pmatrx.F - MZPMXT reads all data from a database entry (unless ADATA has already been specified).

pdbmisc.F - RCDATA component parameters from the database - reads parameters or description.
            OPNPDB opens the database
            UPDATE refreshes component descriptions
            DESCPC reads component description
            GETMFS reads component flow data
( Not called! )

newnet.F -  NEWNET,PCDEFN - calls OPNPDB, calls RCDATA [fixed for new database]

pltnet.F -  EDCOMP - calls RCDATA [fixed for new database]

moplnt.F -  DBDAT - reads the additional plant output information [fixed for new database]

C -------------------> CDB
C This is the generic components database manager. Which handles items held in (nominally) 
C the components.db1 database. A Description of the routines associated with CDB and this 
C database is as follows. 
C 
C -------------------> Database Management
C The module cdb is the main controlling routine for the management of the components 
C database. 
C
C The data structures used by the module is held in two include files:
C   gencompDB.h 	- 	parameter specifications 
C   gencompDB_common.h 	- 	common variables
C	 
C The module uses the following routines. 
C
C   CDBDomainExplore 	-	presents a list of the technical domains in the database and
C				allows user to manage those domains or 'drill down' further
C 				to categories.
C   CDBCategoryExplore	- 	presents a list of the component categories in a domain, 
C 				allows user to manage those categories or 'drill down' to view
C 				spedific components.
C   CDBItemExplore	- 	presents a list of the components in a category, allows the user
C 				to manage those components or 'drill down' to view the data associated
C				with that component. 
C   CDBPSetsExplore	-       presents a list of the parameter sets associated with a component and 
C 				allows the user to manage those or 'drill down' to view parameters in a
C 				specific set [Uses CDBPSetList]
C   CDBParamExplore	-       presents a list of parameters from a set, allowing the user to manage 
C 				and edit specific data entries [Uses CDBParamList,CDBParamEdit]       	
C   CDBManageStruct	- 	this routine allows users to add/delete/edit domains,categories, parameter 
C 				sets and parameters.
C   CDBImport		-	this routine imports an ASCII component text descriptor and inserts it into 
C 				the database. 
C   CDBExport		-       exports all or a subset of the database to an ASCII file (.csv or tab separated).


C -------------------> Accessing Data (common routines)
C These routines are used by other ESP-r modules and involve searching and 
C retrieving data for a specific component - this is returned to a list, which
C is then decoded by a dedicated plugin, depending upon the technical domain of 
C the data. 
C
C The following common routines are available.
C   CDBScanDatabase 	-	scans the components database and returns data according
C				to the scan type. 'light' returns structural data only, 
C				'detailed' reads the full database into memory.
C   CDBSaveDatabase	-	writes a database held in memory to the standard database format.
C 				alternatively different formats adopted (.csv,tab separated, etc.)
C   
C   CDBSearchItemData 	- 	takes up to three strings 'domain_id','category_id' and 
C				'item_id', searches the database for a match and extracts 
C 				the data if a match is found; only 'item_id' is mandatory, 
C				the other two strings can be used to search more efficiently;
C 				the data is returned to a generic list.
C   CDBPsetList		-       Presents a list of parameter sets and returns a selected set.
C   CDBParamList	- 	Presents a list of parameters in a set and returns a selected parameter.
C   CDBParamEdit	- 	Allows a user to edit the data associated with a specific parameter.
