Use set to build task selector (REVIEW-4479).
Remove unused/unnecessary code from task selectors processing.
Move some backing classes for tooling API models to provider.

GradleProject is now implemented in o.g.plugins.ide.internal (and possibly has
another implementation in consumer when using convertors on client side).
Similar for done to achieve this for Task/GradleTask (not complete yet).
Better place for Launchable implementations.

These classes needs to be transferrable from provider to consumer and back.
Clean the interface used to transfer launchables.

With the implementation moved to a package private to launcher this
will avoid versioning problems.