public.json: Add a definitions.user model

This is intentionally vague so it captures all of our people classes.
Customers will also have addresses and preferences, and vendors may
have additional contact information, etc.  We can handle all of that
in separate models.

The email format isn't official Swagger, but it's legal [1]:

  Primitives have an optional modifier property format.  Swagger uses
  several known formats to more finely define the data type being
  used.  However, the format property is an open string-valued
  property, and can have any value to support documentation needs.
  Formats such as "email", "uuid", etc., can be used even though they
  are not defined by this specification.

[1]: https://github.com/swagger-api/swagger-spec/blob/master/versions/2.0.md#data-types