wcml: If we are writing 'compChem' use XSD double

The CompCML convection makes use of our specification
for the representation of real and complex numbers
adding the datatype attribute 'fpx:real' or 'fpx:complex'.
This is to avoid poluting the concept of a number with the
machine specific issues of how to represent a number on
real hardware (Fortran never cares about real hardware).

However, the compChem CML convention says that we are to
use the XSD data type 'xsd:double' (not xsd:float - even
for single precision numbers). The specifications (XSD
data types, and compChem) are both silent on how to
represent complex numbers (rather than complex objects,
which are simple).

This change, based on a modification by Bert, chooses
between these two representation depending if the cml
document was first created with compchem=.true. or
compchem=.false.. Complex numbers are still stored as
fpx:complex but the fix for this can now be made in
m4/datatypes.m4 without touching anything else.

In a bunch of places this results in two branches of
a fortran if ... else ... endif having identical bodies
(for integers etc.) but I'm going for simplicity, and
assuming any resonable compiler will deal with this.