Fix tilde constraints without a stability suffix to work like wildcard constraints.

With this fix, a tilde constraint such as ~3.1 won't match unstable versions of 3.1,
but a wildcard constraint such as 3.1.* would.  This seems like a confusing
inconsistency, and so I have corrected it.
Refactor wildcard matching to use manipulateVersionString
Formatting updates for PSR-2 compliance.
Fixed lower bound of tilde and wildcard matches.

The lower bound of ~1.2 and 1.2.* style version requirements now uses >= 1.2.0.0-dev instead of
> 1.1.9999999.9999999.  This is more straightforward to read, and behaves equivalently.
Fixed upper bound of wildcard matches.

Follow-on from 95b4348afa2ee335d9dc1f9e2fecf579b49f7ddf
Detect version based on tag if HEAD points to a tag.
Fixed the existing test and added a new one for git tag version guessing.
Use --tags to get non-annotated tags as well.
Allowed to 5 auth requests before fail (https://github.com/composer/composer/blob/6687743adbac1fe73ca81912a6ef29ceb6e5cc2f/src/Composer/Util/Svn.php#L115).
Updated tests for SVN driver.
Use github protocols setting for push urls
allow FileDownloader to use username:password@ info when downloading through https?
Output error if the disk is full, fixes #1952
Merge remote-tracking branch 'stefk/master'
Code cleanups, enforce url for https, refs #2009
Fix tests
Fix output of diag command
Fix variable masking
Add warning to docs about package repos, refs #2011 #563
Detect safe_mode and output correct error, closes #2006