3rd party component support

This PR adds 2 new methods to enable easy integration of 3rd party libraries through hashspace components:
 - $refresh() - that is automatically called anytime a refresh is required on the component (i.e. when one of its property changes) and that allows to resynchronize the 3rd party lib.
 - $getElement(idx) - that is added on the component instance and that allows to retrieve any root Element node generated by the component's template.

The PR contains a sample of integration with chart.js