Enum.sort_by/3

Enum.sort_by/3 takes a collection, a mapper function, an an optional
sorter function.  The function sorts by the mapped value using the sorter.
The optional sorter default to `<=/2`.
Add @doc for Enum.sort_by/3
Add @spec for Enum.sort_by/3
Fix @spec sort_by

Use format provided by José Valim that uses `when` to eliminate the need
for `@type mapped_element`.
Fix spacing
Pull reused test data into variable
Fix phrasing of Enum.sort_by/3 @doc
Merge pull request #2464 from KronicDeth/feature/2460/enum-sort-by

Enum.sort_by/3
Remove duplicated specs and old PR example
Run command line and escripts in a new process without trap exit

Closes #1985
Move local.install and local.uninstall to archive.*
Use exit({:shutdown, int}) to signal shell status
Also use exit({:shutdown, 1}) on mix test
Use iolists in collectable for binaries
Remove wrong usage of exit(0|1)
Add System.cmd/3, closes #2251
Use the new System.cmd/3 in stdlib and apps
Use binaries so we can use Elixir functions
Update CHANGELOG
Deprecate lists in find_executable/1