Single Task Controllers RFC

These are single task controllers that are intended to be used directly. I.E. Not inherited. Each controller is responsible for one task. Extensions can use these controllers to execute each task so long as their model supports the interface the controller expects. 

This is a big change compared to the old legacy system where extension developers inherited functionality. The key benefits of this design are:

1. Reduction of duplicate code.
2. Ability to add new tasks without worrying about BC breaks
3. Clear separation of responsibility 
4. Cleaner code.
5. Move business logic into the model 
6. One model can be used for list and form views
7. No need to create empty controllers.

To understand how this system works please see the dispatcher class as it is the key to the entire system.
Extensions will have to create a controller that extends JCmsControllerDispatcher and then execute it in their extensionName.php entry point. 

I've also created model classes that support these new controllers. See https://github.com/Mathewlenning/joomla-cms/tree/CMS-Model-Classes