Add organize imports refactoring that collapses multiple selectors into a wildcard

Has a configurable number of selectors above which it will perform the refactoring, as well as an 'exclude' parameter to exclude certain packages.

I think it should not cause compilation errors in a working file. It refuses to do the collapse when

- The selectors already contain a wildcard
- The selectors contain a rename
- It would cause an implicit conversion to get into scope
- It would cause a currently explicitly imported name to collide with a wildcard imported name, if the precedence gets lowered by changing it into a wildcard
- It would cause a currently wildcard-imported name to collide with a new wildcard-imported name.

The last two are determined by just looking at the imports. This makes it more conservative than necessary. For example, suppose that we import `scala.collection.immutable._` and we don't use `HashMap`, and a bunch of names from scala.collection.mutable which could be eligible for collapsing, it won't do it, because it doesn't know whether the `HashMap` from the two packages will collide. If you look at the `Tree` instead of just the `List[Import]`, you could determine that `scala.collection.immutable.HashMap` is not used, and decide that it's safe to import both `scala.collection.mutable` and `scala.collection.immutable` can be imported with a wildcard.

However, that would require more code changes.

Also, it currently just does nothing for imports that satisfy any of the rules above. We could optionally refine this by doing a wildcard after all, and hiding the colliding members.
Merge pull request #9 from eamelink/collapse-imports

Add organize imports refactoring that collapses multiple selectors