Add *.tmpBin files to .gitignore

These files are created by sbt and they clutter up the `git status`
output until sbt has finished building.
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
Mark some completion tests as flaky.

See failed tests in the Scala compiler PR validators [PR3951](https://scala-webapps.epfl.ch/jenkins/job/pr-scala-integrate-ide/7999) and friends.
Merge pull request #774 from dragos/issue/flaky-completion-tests

Mark some completion tests as flaky.
Merge pull request #771 from sschaef/update-gitignore

Add *.tmpBin files to .gitignore
Revert "Disable tab to spaces converter of `TextViewer`"

This reverts commit 541b9e00fb858064684b099f43e045a44421f192.

This commit has the unseen side effect that on copy and paste of text
that contains tabs, the tabs are no longer converted to spaces. This
revert resolves this problem, but forces users to enable tab to space
conversion in the Java formatter.
Automatically convert tabs to spaces

This commit disables the default tabs to spaces converter in the editor
and instead adds one that is configured in the source viewer. This has
the advantage that we don't rely on Java preferences anymore but
consider our own ones.
Faster implementation of `ScalaCommentScanner`

Hopefully an imperative loop is fast enough, otherwise I have to think
about a different algorithm.

Fixes #1002241
Moves content of core.api in core, and adds Ixxx prefix
Shut up noisy logger.

Fixed #1002228.
Merge pull request #777 from sschaef/t1002241-faster-comment-scanner

Faster implementation of `ScalaCommentScanner`
Switches to package import for the dependency to osgi.service.location

The dependency to the bundle org.eclipse.osgi was creating conflict
with the bundle javax.xml.bind (included in Eclipse for JEE).
Merge pull request #779 from skyluc/issue/API-ScalaProject-location

Moves content of core.api in core, and adds Ixxx prefix
Merge pull request #780 from skyluc/issue/java-xml-dep-conflict

Switches to package import for the dependency to osgi.service.location