Lots of changes to remove one layer of definitions

Now define elements (e.g., 'pVal') which are simple types. restricted as
necessary. These are then ref'd (in a choice which alternatively allows
reference to a named variable) in the defined Type (e.g.,
ProbabilityValueType). This means that arrays are defined from scratch
in the same way rather than consisting of arrays of the capitalised
types. This approach makes the instance documents as concise as possible
but still informative.