Widget template compilation improvement:
* fully extracted compilation logic from the Widget class to the WidgetCompiler
* made WidgetCompiler dynamic (before it was a singleton) so we can compile many Widgets concurrently