Refactor Interaction so constructors have no side effects and inheritanc...

...e works better.

Achieved by removing all internal calls to registerWithComponent() in constructor.
Now external caller must call this function to activate the interaction.
Fixes #155.