moving a lot of validation for cluster create requests from

solve time to request time, as well as adding additional checks
for required provider fields.
makes sense, more re-usable that way too.