Creates an API for Scala plugin

Moved bulk of the code in the internal package.
Created 'public' IScalaPlugin trait and object with minimum interface
Moved used constants in new object SdtConstants, some name clean up
Updated the source to be compatible with the changes
Inlined composed constants
Add explicit return type to API method
Fix Luna build by using the AJDT dev version of the weaving hook.

AspecJ has a new release in their /dev update site, with a different
version of the weaving hook. We upgrade to this one to fix our builds.

This is (probably) brought in as a transitive dependency from aspectj.runtime,
and I couldn’t find a way to use the weaving.hook available in the release
Luna repository (there is one there as well).

We might investigate whether we should use the AspectJ release from the
Spring Tool Suite (since that’s the most likely conflict we’ll ever have),
at least until there’s a stable release of AJDT for Luna (none yet).
Merge pull request #772 from dragos/issue/fix-luna-build-hook-version

Fix Luna build by using the AJDT dev version of the weaving hook.
Changes according to pr/745 review comments
Merge pull request #745 from skyluc/issue/API-ScalaPlugin

Creates an API for ScalaPlugin
Adds better dependency between sdt and scala

The Scala feature depends on the feature of the main Scala version.
The Scala feature depends (as an option) on its source feature.
Updates version of build-tools