Specifications in written form

This is just to have a guideline what to do and design the methods needed
Going with regular expressions

While thinking about an algorithm to split the version string by, I found it easier to use a regular expression for matching. This also makes it easier to build a SemVer struct from a string.
Excluding leading zeroes

Check http://goo.gl/wvP0Mj for a visualization
Refactoring the regular expression

The old one had the problem that in prerelease and build strings combinations like `+.---...` or `--...-..--` were valid. This version also invalidates versions starting with `0.0.0`.

See http://goo.gl/8mg75m for visual details
Keeping other encodings in mind

The regular expression has a type mismatch when called with types other than string. I think this can be solved, but at the moment that is not of importance I guess
Introducing more string encodings

The matching function is now able to match char, wchar and dchar strings :smile:
Getting more speed with rdmd

Next thing on the list is working with the command line with user-supplied arguments. That's going to be easier with rdmd in place.
Version validation on the command line

dub will now build the semver application with the first command line usage.

Given the -v or --validate option and one version string, the application will return 1 if the version string is not compliant to the Semantic Versioning specification. If the version string is okay, 0 is returned.

In order to test the output of the command line tool and to keep cli interface in sync with the future library interface, the test folder has been created. It contains a test script for testing the command line tool and the expectations of the version validation.
Formatting the RegEx

If just noticed that providing the 'x' option allows for whitespaces in the RegEx definition. So for the sake of easier reading, it has been formatted.
Testing both written forms of the valdiation option
Declaring public API | function safety

The Semantic versioning sepecification requires the declaration of a public API. I decided to just take the API of semver.d into account, since the command line tool is just using it and I plan to build static libraries from semver.d later on.

To make the API obvious, I provided the public interface in a separate 'public' block. With aliasing, I also gave them better names than the ones used inside.

I also had a look at safety for the function and changed it to be safe. I'd rather choose to make it a pure function, but std.regex.match is not pure.
Adding documentation
Completing the docs
Merge pull request #5 from mog-wi/compliance-validation

Adding feature: Compliance check with SemVer 2.0.0
new Version: 0.1.0