Added a shorthand way of picking required attributes without a validation fn

In doing this I've moved the required attribute test into a validation function and allowed an array of validation functions to be expressed for an individual attribute (though our expressions currently do not cater for this. !string::something = two validators: 'required' and 'string')