Creates an API for ScalaPlugin

ScalaPlugin has to be a concrete class for the Eclipse platform, so the implementation has been moved in the `internal` package.
In the public package, there is a trait with the API method of ScalaPlugin, and an object with a singleton, to follow the usual Eclipse design.
Most of the helper methods which were in the ScalaPlugin class and object have been moved to better location: helper classes, or related companion objects.
Also, a word on thread-safety ? (see the [threading](https://docs.google.com/a/typesafe.com/document/d/1FaPp6FfjbWcpj8u7pvUUayE01EPH4KR8ABjfDLOAOVE/edit#heading=h.a3hycbv56bh5) header)