Introduces api.ScalaProject

Moves most of functionality to API package for ScalaProject

Documents the API trait.