fix function defs for function that take vsn(), which can be an atom

Since type `vsn()` can be an atom:

```erlang
-type vsn() :: 'NO_VSN'
             | ec_semver:semver().
```

Some functions were not properly handle the cases where it was.