Tweak precedence of builds vs. pre-releases, allow empty build and pre-release

The first change is for adapting http://semver.org standards,
the seconds aims to ease satisfying (yet to be implemented).

As a side effect, this required to match '-' and '+' in the regex to differ between
empty matches. This also led to make __iter__ always return a list with 5 elements.