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.
Can we encapsulate this within SizeContraint? E.g. 
{code}
sizeContraint.verify(numMachines);
{code}