Assets management improvements

This PR focuses on improving assets management.

An `AssetResolverInterface` is introduced, to allow asset manipulation from the `BaseHook` class without duplicating asset URL and path resolution code.

The structure of the generated assets in the web directory is improved. No more `0` directory, the template assets are now in `template-assets`. 

The "source" and "template" parameters of assets Smarty functions are now fully functional.