Device-specific : Used CRTP for cleaner templates. No more need to pass pointers to execution_handler.

Now passing template_base const & instead of template_base &, and cloning the template to use it internally