Smarty as a dedicated Module

I extract Smarty from Thelia's core so Smarty is now a dedicated Module.

# Purpose

This PR  allow other developers to integrate the template engine they want.

# Changelog

- Smarty is now a dedicated Module and no more present in the core of Thelia
- All the template logic works now with abstracted class or interface, so it is possible to create a new Module for an other template engine
- A new interface has been introduced, the ParserHelperInterface : its purpose is to parse a string and get all parser's function and block with theirs arguments.
- A new service has been introduced : thelia.parser.helper and it must be the implementation of ParserHelperInterface
- If you want to create a new Template module, you must declare those services :
    - thelia.parser : the class that implements ParserInterface
    - thelia.parser.helper : the class that implements ParserHelperInterface
    - thelia.parser.asset.resolver : the class that implements AssetResolverInterface

# Todo

- remove smarty from composer.json file
- create a composer file in TheliaSmarty module
- remove all occurences to Smarty in Thelia's core commentaries

# Warning

This PR **may** break BC if Smarty is used instead of ```thelia.parser``` service