make-release: enhance MwVersion

Get rid of code duplication when detecting versions and added in the
notin of phase and cycles (ie: rc0)

* We handled regular version and alpha/beta/rc using two different
  regex, that is now a single regex.
* Use named groups in regex and /x to make the regex easier to
  understand.
* The last matched group (a minor version for regular release and a
  cycle for a alpha/beta/rc) is tested for 0 to find out whether we can
  forge a previous version which is done by decrementing that last
  group.
* Update tests were relevant

Tests:

test_incomplete_version (tests.test_mwversion.TestMwVersion) ... ok
test_major_version (tests.test_mwversion.TestMwVersion) ... ok
test_master (tests.test_mwversion.TestMwVersion) ... ok
test_minor_version (tests.test_mwversion.TestMwVersion) ... ok
test_release_candidate (tests.test_mwversion.TestMwVersion) ... ok
test_release_candidate_bumps (tests.test_mwversion.TestMwVersion) ... ok

----------------------------------------------------------------------
Ran 6 tests in 0.002s

OK

bug: 57088
Change-Id: I34c67e95a85ee28f8c9b074c738324d564794013