Add Interactive Component, a base class for all other components

[#44616375]

It ensures that required interface is implemented, as well as it lets
us to avoid repeating simple setup which is common for all components.
Implement Image Controller

[#44616375]

TODO: support relative paths?
Add image component to the Interactive Components example

[#44616375]
Add missing 'require' argument in text controller

It seems work fine anyway, but probably it's safer to provide this
argument.