buffet: PropType::CreateValue() should do constraint validation

Make PropType::CreateValue(v,...) validate the value against type
contraints which eliminates additional ValidateConstraints() call
and ensure the produced values conforms to the type schema specified.

Also parameter-less PropType::CreateValue() should use the default
value specified in PropType when constructing the value.

BUG=brillo:107
TEST=`FEATURES=test emerge-link buffet`

Change-Id: I3712b8e0a14515c153c987078863b2904c89cafd
Reviewed-on: https://chromium-review.googlesource.com/262205
Reviewed-by: Vitaly Buka <vitalybuka@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org>
4 files changed