Add the dependencies feature

- update the tests
- example
```
schema = {
    "field1": {"required":False},
    "field2": {"required":False, "dependencies": ["field1"]
}

# would validate
{"field1": 7}

# would fail (missing field1)
{"field2": 7}
```