Controller view vars. Refs #2970.

Rewrite of the way Controller passes View vars to view on  construction. Refs #2970.

NOTE: this ticket originally proposed deprecating setting view options on Controller and instead  providing a setter method `Controller::setViewOption()` or `Controller::viewOption()`. This was to avoid Controller clobbering View's default fields, which essentially made the default values in View or any subclass meaningless. On review this PR still aims to address the clobbering issue but does not deprecate setting view options on Controller and  does not add said setter method. View Options are now only passed to the View if explicitly set on Controller. The View constructor also changes to:

	public function __construct(Request $request = null, Response $response = null,
		EventManager $eventManager = null, array $viewOptions = []) {

The other minor change is that the protected Controller::_getViewObject() is now a public View factory called Controller::createView(). This is how you should now create a View that relies on defaults set in a controller (not `$view new View(Controller $c);`).

Deprecating setting view options on controller may be addressed later in a another ticket.