Move instance declaration creation

Was previously in class declarations but we should create implied
instances for specific types within instance declarations.

This allows the type checker to find the dictionaries and will allow us
to implement default instances at some point.