Improve missing aliased class exception

Current behavior:

- In case of a missing helper: 
`public $helpers = ['NonExistentHtml'];`
    Error: NonExistent could not be found.
    Create the class NonExistent below in file: App\View\Helper\NonExistent.php

- Missing alias class: 
`public $helpers = ['Html' => ['className' => 'NonExistentHtml']];`
    Error: Html could not be found.

-  In case of a missing or not loaded plugin:
`public $helpers = ['Nope.Html];` or 
`public $helpers = ['Html' => ['className' => 'Nope.MyHtml']];`
    Error: Html could not be found.
    Error: 
    Error: An Internal Error Has Occurred.

After these changes to the exception reporting, ObjectRegistry reports correctly missing alias class and plugin name:

`public $helpers = ['Html' => ['className' => 'Nope.MyHtml']];`

    Error: Nope.MyHtmlHelper could not be found. Make sure your plugin Nope 
    is in the App\Plugin directory and was loaded.

    Error: Create the class MyHtmlHelper below in file: App\Plugin\Nope\View\Helper\MyHtmlHelper.php

Plugin::path() throws exception if plugin is missing, resulting in broken missing_helper template and Internal Server error. That's why additional plugin path juggling is required in the template.

Related to #3699

If this is a way to go, I can also update missing_component and missing_behavior templates...
That's what I was saying.
I would be OK to use keyword control structure for PHP around HTML blocks.