Creates an API for Scala plugin

Moved bulk of the code in the internal package.
Created 'public' ScalaPlugin trait and object with minimum interface
Moved used constants in new object ScalaConstants, some name clean up
Moved unrelated used methods in FromScalaPlugin object -- those need to find a new home
Updated the source to be compatible with the changes

Still need:
-- manage content of FromScalaPlugin
-- remove dead code from internal.ScalaPlugin