FIX change action variable source to getViewer

Previously we were using the request to get the action parameter. However for custom URL structures and nested controllers, this won't work and causes template selection to break.
Test nested controller actions and Controller->getViewer

Adds tests and supporting classes for testing that the correct action is passed to Controller->getViewer inside Controller->handleRequest.
Merge pull request #3018 from willmorgan/patch-3

FIX change action variable source to getViewer