Initial path validator

This PR adds two "path validator" classes.

- `JackrabbitPathValidator`
  - Uses the same logic as Jackrabbit for validating paths (inferred from some of the jackrabbit source code)
- `SimplePathValidator`
  - Less permissive than the JackrabbitPathValidator but more basic / predictable.
  - Based on the original Path validation in Doctrine-Dbal but more strict / correct. (the dbal path validator regex, `((/|..)?[-a-zA-Z0-9:_]+)+`, only requires a section of the path to be valid).
I thought about it, but as the behavior changes between validators it's not trivial. One method might be to have all tests use the same paths and for each test to declare what its answers should be to each path ..