Add controller namespace prefix to template mapping

InjectTemplateListener changes behaviour when controller is matched by
map entry.  Mapped namespace prefix is replaced with provided value and
rest of the controller inflected. If map entry value is boolean true,
then whole controller class is inflected. In all cases\Controller\
namespace and trailing Controller are stripped.

Most notable use case is when module name is not top level namespace

With map entry 'Vendor\Module' => true and controller class
Vendor\ModuleName\Controller\FooController resulting template name will be
vendor/module-name/foo/action-name
Renamed variables to be more verbose, added comments
Added two more tests for InjectTemplateListener
Merge pull request #5670 from Xerkus/feature/controller-to-template-map

Add controller namespace prefix to template mapping

Conflicts:
	tests/ZendTest/Mvc/View/InjectTemplateListenerTest.php
[#5670] CS fixes

- Added docblock
- Fluent interface
Merge branch 'feature/5670' into develop

Close #5670