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.
seems like this logic should be covered with unit-test somehow...