* Add VariantNames trait with the variants() function which the EnumVariantNames macro implements
* Consider generics in the impl block + use absolute path for the trait
* Add `EnumVariantNames`
This derive adds a static `variants()` methods yielding the names of
the enum variants. This happens to be exactly what clap [wants][1], and
is the last puzzle piece to use strum with clap/structopt.
[1]: https://docs.rs/clap/2.33.0/clap/macro.arg_enum.html
* Expand readme section for `EnumVariantNames`
* Return slice instead of array
This reduces the risk of breaking the public API by accident when adding
a new variant.
* Fix typo in Readme
* Add generic doc comment to `variants()` method
* Add test case using `variants` in clap/structopt