Support for Abandoned in Packages

Added parsing for abandoned property into the CompletePackage Object.
Abandoned support in `show`

Executing `composer show` on an abandoned package displays the warnings for package status.
Abandoned packages support

Added warning to the installer process.
If any installed packages are flagged, the user will get a warning at the end
of the install/update process.
PR Review

- reverted comma removal
- made getReplacementPackage consistent
- removed abandoned flag if false
Add ignore-platform-reqs option to remove command
Add ignore-platform-reqs option to require command
Update require command's documentation
Update remove command's documentation
Issue #3422

https://github.com/composer/composer/issues/3422
Fixed the json formatting when using JSONC
Update SPDX licenses, fixes #3431
Restrict the JSONC fix to affected versions
Fix typo
Merge pull request #3432 from stof/patch-1

Fixed the json formatting when using JSONC
Merge pull request #3419 from olaurendeau/master

Add --ignore-platform-reqs for remove and require commands
Remove the handling of updates in the generator

Updates are implicitly handled by whatProvides for install requests
Reduce whatProvides overhead
Use elseif instead of else { if {
Remove unnecessary collection of names which isn't used
Merge pull request #2734 from naderman/optimize-solver

Optimize the solver and remove unnecessary code