SI-8335  List.++ avoidably burns memory

Changed to check the identity of the CanBuildFrom instead of the identity of the generated builder to shortcut building.  Should reduce memory churn on ++ a little.