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).
Didn't look valid to me either, but I think I saw a specific example where this was allowed so assumed there was some reason for it - can't find it now however. Testing it against jackrabbit would be a good idea.