Add pluggable validation for PathBuilder

Fixes #975
I took the liberty to implement the is-prefix support.
I was only wondering about one thing.
Currently, I am normalizing boolean.class to Boolean.class, but as I said we *actually* only use Boolean.class(in PathBuilder.getBoolean(). Does it sound reasonable to not wrap the primitive boolean.class to Boolean.class?