Added intermediate CRTP class for type::class_, moved implementation there (can share with type::interface), added basic argument signature structs.