Allow .so files to have more extensions (#4232)

**What type of PR is this?**

Bug fix

**What does this PR do? Why is it needed?**

This PR relaxes requirements on shared libraries' versions to be in line
with bazelbuild/bazel#10148. Some prebuilt libraries have non-digit
versions, and we need to allow those.

**Which issues(s) does this PR fix?**

Fixes #4227.

**Other notes for review**

Bazel uses a regular expression to match version, which is not available
in Starlark. I believe this implementation matches it exactly, but if
you see some discrepancy — lets see what we can do.

I've also left extra tests that we already had here and added a case
that checks library name mentioned in #4227. In result they are not
sorted now, but Bazel's implementation does not sort its tests either 🤷
2 files changed