This commit add supports for value types in prop validation. To describe a value V type, one has to simply write {value: V}. Note that this commit also improves the validation typing. closes #1198 closes #910
in order to separate compiler/ and runtime/ code