feat(directives): add support for multiple selectors separated by commas

Add support for multiple selectors when defining a directive. Selectors should be separated by commas.

Closes #304
Do we really need a class ?

I would prefix private methods/function with "_", add return types