MDL-45486 Handle different versions separately

Now the setter accepts 2 different versions to be
used, one for versions (setversion) and another for
dependencies/requires (setrequires). The later defaults
to the former.

That way we can bump all versions to major release date
while keeping all dependencies pointing to a recent, already
released version (usually some RC).

At the same time, some other improvements are landing with
this change like:

- Better handling of comments in dependencies.
- Better handling of git repos ignored/excluded.