Add defcomponentmethod macro

Adds feature requested in #43 to define components into multimethod registry.

Ignoring the idea of defcomponentmethodk for now...

Closes #43