Rework support for possibly blank fields.

The original support for possibly blank fields just wrapped a maybe wrapper
around a field value.  While this approach kept the code required to support
possibly empty fields in the CSV reader fairly small, the extra level of
wrapping meant that client code was often awkward.  This change adds explicit
alternatives to the field_value/0 type for each type of possibly empty field,
e.g.  maybe_bool/1, maybe_int/1 etc.  (XXX maybe_term is not yet supported.)
Client code should be simpler with this approach, since unwrapping field values
for maybe value is now handled by the library.

src/csv.m
src/csv.typed_reader.m:
	As above.

tests/harness.m:
tests/maybe.exp:
	Conform to the above change.