ConfigValidator: ensure that require-dev exists during override check

- Ensure that require-dev is present before checking for dependeny overrides.
- A small grammar update for the warning message.
Merge remote-tracking branch 'chr0n1x/fix-require-dev-warning'
Fix indenting, refs #2535
Fix uninitialized var, fixes #2539
Handle metapackages properly in downloadmanager, fixes #2466
Ask for auth if we get a 403 and did not have auth yet, fixes #2464
Optimize solving by removing packages that are excluded by the root package requires
Merge branch 'memreduce'
Re-download files when the cached copy is invalid, fixes #1496
Fix commit is gone recovery, refs #1130
Update source/dist refs when a commit is recovered from, fixes #1130
Package should have download options
Package options must be passed as argument to downloader
Package options should be dumped if exists
Package options must be a non mandatory array and should be loaded when
exists
Repository options must be replicated on package when dist file is under
repository base dir