Add prefer-stable flag to pick stable package over unstable ones when possible

The thing with dev packages, and especially with some libs requiring dev packages themselves, is that people are often forced to set `minimum-stability` to `dev` to avoid going mad tracking deep dependencies. That leads to *everything* being dev, which is clearly not ideal for most usages. This provides a new flag that tells composer to pick more stable versions when it can, while still allowing dev versions to be installed if that's the only option.

Add `"prefer-stable":true` in a composer.json that has `"minimum-stability"` set to something else than stable, and see what happens with `composer update --dry-run`. It should update packages to stable versions when it can.

If you really want a dev version, instead of just requiring it with `@dev` like before, you should require explicitly the version you want, e.g. `1.0.x-dev` or `dev-master`.

Happy easter :rabbit: