Changed how instance naming works

Instead of having classes provide a _tcm_instance_name method, we'll simply
expect constructor param sets to be returned as a hash. They keys are the
instance name and the values are hashrefs of constructor args.