Handle undefined properties

This pull-request allow to validate objects with properties set to ``undefined`` if the properties are not required.

It seems coherent with this:
```javascript
JSON.stringify({nullProp: null, undefinedProp: undefined})
>> {"nullProp":null}"
```
So with this  schema:
```javascript
var schema = {
    properties: {
        key: {type: 'string'}
    }
};
```
 we should have:
```javascript
tv4.validate({key: undefined}, schema);
>> true
tv4.validate({key: null}, schema);
>> false
```