376981 Created dedicated agent for remote p2 repositories

- Added a new IProvisioningAgent impementation dedicated to loading
  remote p2 repositories in Tycho. Moved corresponding implementation
  classes to the same package.
- Re-implemented test for offline mode and cache, which tests
  directly via the p2 agent interfaces. The existing tests for
  the offline mode, P2ResolverLocalMetadataCacheTest, shall be
  deleted eventually.

Change-Id: I90b905120e3f4c401f6aa930d926cdadda4ba2f8
376981 Removed unneeded cases in p2 agent cache

- Dropped possibility for different agents for different
  offline/localMavenRepository settings, because these settings are
  always the same within one Maven session/lifetime of the OSGi
  runtime.

Change-Id: Id1c0e076d52e18815a2e8149f140e39b2fe9572d
376981 Hold remote agent instance in a service

- Hold agent for remote repositories in a new service, the
  RemoteAgentManager, instead of a static variable. With this change,
  the test-only "purgeAgents" method is no longer needed.

Change-Id: I06f4d8f66d56dafdfaf3e853d18fdd58dc0fe3a0
376981 Handle disableMirrors parameter in RemoteAgent

- Handle disableMirrors parameter at the right location: in the agent
  dedicated to loading remote repositories. As a side-effect,
  composite repositories no longer need to be treated specially,
  because they load their children via the same agent, which
  intercepts the load and hence clears the mirrors on all leaves.
- Unlike offline, the disableMirrors parameter may vary within a
  reactor. Therefore there may be two RemoteAgent instances for a
  correct behaviour according to the diableMirrors parameter. Still,
  a warning is issued in this case because this may lead to repeated
  loading of the repositories from remote. The recommendation is to
  have a consistent setting througout the reactor.
- Re-implemented test for disabling mirrors. It covers the same cases
  as the test TargetPlatformDisableP2MirrorsTest.

Change-Id: I0a67ffaa24e2a2a38a6b506f45d299790fd9c830
376981 Don't cache p2 local repos in remote agent

- The p2 views on the local Maven repository shall not be loaded
  through the remote agent, because they don't need the special
  treatment of remote repositories. This means that the loaded
  repositories also can't be cached in the agent.
- Temporarily cache the repo instances in the P2ResolverFactoryImpl.
  The proper solution, loading them from a new p2 agent for local
  repositories via an URN key, needs to wait until we can consume the
  p2 fix in M7 I did for this (bug 347319).

Change-Id: I206e50648c80960f99ca4b963052f81de5ed0d2c
376981 Dropped redundant p2 repository cache

- Dropped redundant caching of loaded p2 repositories. The
  repository managers for metadata and artifacts, which sub-class
  AbstractRepositoryManager, already keep soft references to all
  loaded instances; the additional cache in P2RepositoryCacheImpl is
  not needed.
- Deleted TargetPlatformDisableP2MirrorsTest which used
  implementation details no longer available. The exact same cases
  are tested in RemoteAgentDisableP2MirrorsTest (through the right
  interface).

Change-Id: I8a67ffaa24e2a2a38a6b506f45d299790fd9c837
375529 Remove unused dev.properties generation for IDE usecase

dev.properties generation is only used for tycho
test execution for now.
Build ouput folders in dev.properties were wrong
(see previous commit) and are fixed now
so they are consistent for the tycho usecase.
The IDE usecase where PDE build ouput folders
are required is unused AFAICT, so remove unused method
and interface.

Change-Id: Ic7da3f5e950b7b49ab678dd54ab7d3e99adee3a3
374794 correctly package dir classpath entries

Fix handling of dir classpath entries:

- use separate output folder target/<ENTRY_WITHOUT_SLASH>-classes
- PackagePluginMojo will now only create nested jars for jar classpath
  entries and add dir classpath entries with the correct prefix
  to the main bundle jar
- add IT which builds sample project with  ".", nested jar, dir/ and
  resource dir and assert correct packaging

Change-Id: I7bd5fcfcb6362e00dc9c24835070ceebc825d12c
[cleanup] Some comments in LocalRepositoryP2IndicesImpl

- Also: Added a test constructor

Change-Id: I85811ccf56ec84d71b85ae4a0d357a3516485654
Fix P2DependencyGeneratorImplTest

test was relying on undefined IU
order which may be different on
different OS/hash set impl.

Change-Id: If99b55652a3f318b3a9c0ddc7e35492c7f7a2e91