Let represent_as accept strings

This adds fixes something I think was just in oversight from #2586 : allowing `represent_as` to accept representation names in addition to class objects.

This *may* conflict with #2626 or #2629 , so this may be best merged after those, as this is simpler and hence likely the easiest to rebase.

cc @taldcroft