This commit adds better comments and more consistent field names in
discord/command.go.
It also renames CommandLocales to StringLocales, since the localization
is fairly generic and isn't specific to commands.
This commit gets rid of contain-it-all structs and instead opt for
interface union types containing underlying concrete types with no
overloading.
The code is much more verbose by doing this, but the API is much nicer
to use. The only disadvantage in that regard is the interface assertion
being too verbose and risky for users at times.