Simplify gpu_ecm api by passing ecm_params struct
I like this change for reasons that are slightly hard to enumerate.
- Easier to tell what variables are params and what are locals
- Easier to add new gpu_arguments
- Easier to see which params are modified (search for mutable_params)
If you find it ugly to pass mutable_params
I can back out the second commit here, but I thought it was nice.