Extend CMS controller base from framework class

## Executive Summary
Extends JControllerBase from it's framework counterpart class

## Detailed Summary
This extends ```JControllerBase``` from the Frameworks ```/Joomla/Controller/AbstractController``` class. This means it's implements the frameworks interface giving forward compatibility to the future when we will only use that class. In order to do this I have also had to introduce ```setApplication()``` and ```setInput()``` methods to reflect those in the frameworks class, the protected ```$app``` and ```$input``` variables are deprecated in favour of the private variables contained in the frameworks class (these cannot be used for b/c reasons)

As in 3.4 ```JApplicationBase``` now extends ```/Joomla/Application/AbstractApplication``` I have changed the typehinting in our constructor to allow anything extending this class to be injected (note the ```setApplication()``` method must still typehint ```JApplicationBase``` to be consistent with the interface unfortunately.

I've also changed the ```loadApplication()``` doc block to return a ```JApplicationCms``` as ```JFactory::getApplication()``` always returns said object

## Testing
To test this PR you can see the unit tests pass and try using com_config (frontend and backend) to ensure everything there continues to work  as expected - as this is the only component currently using the new MVC classes.