Datatype for generic font families

Backwards compatibility is retained, provided the client only
used the `serif`, `sansSerif`, or `monospace` functions in
generic font family contexts (and not doing so should have
been an error anyway).

Added a little extra documentation.

fixes sebastiaanvisser/clay#52