25435 Better resolve of hooks with {engine_name}

If a hook is a new-style hook and has a default value which contains the `{engine_name}` token, the code now checks to ensure that an implementation actually exists for the current engine.

For example, previously, there could be implementations for maya and nuke and when you installed the app for houdini things would just install without errors, but when you tried to run the app it would not find the desired built-in houdini hook because there was none.

Now instead, it will warn at install time and ask you to enter a manual parameter value in this case.

```
/----------------------------------------------------------------------
| Item:    actions_hook
| Type:    hook
| Summary: Hook which contains all methods for action management.
\----------------------------------------------------------------------
WARNING: Sorry, no built-in support for the tk-shotgun engine yet! The default
hook value '{self}/{engine_name}_actions.py' for this hook refers to an engine
specific hook, however there is currently no hook implementation available for
the current engine. If you want to continue with the install, you have to
supply your own hooks.
Please enter value (enter to skip): 
```
do we need blank lines between the comment and the code it's commenting ;)