Making conversions work with type-class materializers.

Fixes #33 #19

Review by @gzm0 @hubertp
This relies on c.weakTypeTag, which given the history might change the name etc. `implicitly` is more generic. But I can live with both.