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).
yeah, its one of those lame names... LikeJackrabbitPathValidator? dunno. maybe just make the phpdoc very explicit that this uses the same logic but can apply to all storage implementations.