erasure-code: separate profile from pool creation

I tried that and it turns all callers into something that is weird everywhere instead. The root of the problem, I think, is that this argument comes from a yaml map to begin with and is originally a map. None of the callers between the extraction of the yaml file and the cmd_erasure_code_profile function need the profile to be an argument list because it is opaque to them. Therefore the conversion of to an argument list is artificial and it shows.