Added String class.
Added tying; see full commit message.

Desc:
    added tying;
    added Desc::is_type() and Desc::is_type_range() funcs;
    added compound_tie() and compound_validate().

utility:
    renamed bounded_array_cref to bounded_array_ref, made ref property
    non-const.

desc_traits:
    added is_type_primitive, gave primitive_type_to_desc a default
    specialization¹;
    made all trait structs final.

test/desc/desc:
    added tie tests.

1: This is a hack so that is_type_primitive works for types that do no
resolve to an actual primitive_type_to_desc specialization.