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
Changes according to pr/745 review comments
Merge pull request #745 from skyluc/issue/API-ScalaPlugin

Creates an API for ScalaPlugin