Deprecate "groups" in Regex

* `Regex.groups` -> `Regex.names`
* :groups -> :named on `Regex.scan`
* :groups -> :named on `Regex.run`
`Regex.names/1` returns a list of binary instead of a list of atom
`Regex.named_captures/2,3` returns a map of binaries <-> values instead
of a keyword