Isolate core from controllers

Removed all references to any object from the package controller from
objects in the core package.
When necessary, traits where created, so needed or usefull calls from
core to things in the controller package (mainly TemplatesPlugin) can
still be used, and references remain mostly the same for clients.
Also, some usefull configuration strings where added in the
RoutesHelper. This solves some problems that arise when overriding some
controllers but not all, like some objects use RoutesHelper searching
for a given particular Reverse controller. This string allows users to
tell RoutesHelper which reverse controllers are going to be default.
The changes should be completely transparent for those using
securesocial already, but allows for the creation of custom flows by
overriding the default controllers.
Finally, as I was having some warning when building the project I
organized the imports in the core.java package to remove the unused
imports.

P.S. I tested this version with the scala demo provided and its working perfectly.