Implement flag to clean unused dependencies

This addresses issues #2569
https://github.com/elixir-lang/elixir/issues/2569
Merge pull request #2715 from nurugger07/remove_unused_deps

Add an unused flag to deps.clean & deps.unlock
Straight up and unify impls of clean, deps.clean and deps.unlock
Document that @compile accumulates.
Merge pull request #2725 from MSch/document-compile-attr-accumulation

Document that @compile accumulates.
Merge branch 'master' of https://github.com/elixir-lang/elixir