Initial path validator

This WIP PR adds a PathValidator class and a PathValidator interface.

It aims to apply the same validation rules as Jackrabbit.
Note the change in behavior: According to the jackrabbit code, the namespace has stricter validation than the local name. The namespace must be a valid XML name, where as the local name basically only has the restrictions `[^/:\[\]\*\'"]`.

I don't know how valid this is, or if we want to handle this differently for different implementations.