Simplified some macros
Migrated to shapeless hlist
Added Supported typeclass and related magic, working on getting the error macros right