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).
what about destination paths? see https://github.com/phpcr/phpcr-utils/blob/master/src/PHPCR/Util/PathHelper.php#L44 - if a path is a destination of a move, it may not have `[<index>]` at the end, if its a source it may. (forward compatibility for same-name siblings)