refactor(mimes): add variants to give type safety

BREAKING CHANGE
This will break any calls to get_media_type in mimes, or
content_type on response.

To fix code broken by this, use the equivalent variant, e.g.

If you called content_type(x), then you can use mimes::x

If x starts with a number, then it will be prefixed with Media,
otherwise it will have its first letter capitalized and all -
characters replaced with _
fix(rusthttp): temporary upstream repo change
fix(mimes): Correct Hal mime type

BREAKING CHANGE: "hal" now specifies a json response.

To migrate your code change existing usage of "hal" media type to
"halvnd".

- Allow for both json and xml Hal content types
- Remove use of "vnd" in the subtype to make it conform to
  https://tools.ietf.org/html/draft-kelly-json-hal-06#section-3