New interface for clean, allowing more control

- Now, when clean is passed no arguments, it simply returns the set of
  packages which are safe to clean
- Calling 'clean' with arguments attempts to remove those packages