Inline constraints

This one contains all the remaining constraints except the Regex constraint which is not registered to work as inline constraint. I will add it as a separate commit/PR, it needs special handling as it depends on the behavior of not splitting the parameters on a comma. ( The code we had would not work as today we have two constructors for RegexConstraint)..More on this in the PR.
Well its a bit ugly here, all three properties are nullable, and they are deliberately not initialized in the constructors in order to differentiate from an actual value set by the user. ( We can probably have it initialized all of them to -1 and achieve the same thing, but even in that case its ugly).
I would think the best way to change this would be there should be no length parameter and it should just work off of max and min lengths.( The only issue is it will hurt back compat, but really I don't see any one depending on a nullable length property). 
@Eilon comments?