function registerPropertyType(type, defaultValue, parse, stringify, equals, cacheable) {
  if (type in propertyTypes) {
    throw new Error('Property type ' + type + ' is already registered.');
  }
  propertyTypes[type] = {
    default: defaultValue,
    parse: parse || defaultParse,
    stringify: stringify || defaultStringify,
    equals: equals || defaultEquals,
    isCacheable: cacheable !== false
  };
}
Register a parser for re-use such that when someone uses `type` in the schema,
`schema.process` will set the property `parse` and `stringify`.

@param {string} type - Type name.
@param {any} [defaultValue=null] - Default value to use if component does not define default value.
@param {function} [parse=defaultParse] - Parse string function.
@param {function} [stringify=defaultStringify] - Stringify to DOM function.
@param {function} [equals=defaultEquals] - Equality comparator.
@param {boolean} [cacheable=false] - Whether or not the parsed value of a property can be cached.