.cfp validity checks

- Check that .cfp contains a hash.
- Simplify check for invalid keys.
Support null values in .cfp JSON parser
Add field 'prerequisites' to .cfp parcel definition

The value is a hash where the keys are parcel names and the values are
version strings:

    "prereqs": {
        "ParcelA": "v1.2.1",
        "ParcelB": "v4.0.3"
    }
Add prerequisites to parcel definitions
Verify prerequisite parcels

Recursively check that all prerequisite parcels were found and match the
required version. All visited parcels are marked with a 'required' flag.
Switch from implicit to explicit dependencies

Stop inferring the dependencies from the types used in a parcel. Use the
prerequisites from the parcel definition instead.
Fix CFC type tests

Make sure to resolve types before running the equality tests. Otherwise
they pass for the wrong reason. Also set the parcel for some types to
prepare for upcoming changes to type resolution.
Only search prerequisites for unqualified type specifiers

Don't search all classes for unqualified type specifiers. This should
allow to have classes with the same struct_sym in different parcels.
Remove unneeded parameter
Perl bindings for CFCPrereq
Perl bindings for new CFCParcel methods