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.
added no_proxy handler - fixes #1318

- handle no_proxy directive when building stream context
- using CIDR matching from Zend library
- uses parts of code provided courtesy of @hoffman
fix minor typo
return early if rule is * and remove one level of nesting
added documentation for no_proxy env var
Stop trying to bypass https since github does not and will not support non-https transports
Remove the http protocol from github-protocols, refs #1955
Fix tests
using finder for classmap generator
Update 04-schema.md

Added example line for how to enable prefer-stable. Some other examples in the document show options enabled using the string "true" and since this is not the case for prefer-stable I added an example to avoid confusion.
Merge remote-tracking branch 'erikmaarten/patch-1'
Make more obvious
Allow 5.3.3 failures since they dont have openssl